iOS开发

iOS字符串编码<wkwebview>

2018-06-29  本文已影响31人  chasitu

今天跟H5页面交互的时候发现wkwebview加载页面总是失败,所有的delegate都不调用,最后安卓兄弟的一句话:是不是编码文字,就瞬间解开谜底了,不多说,

问题:wkwebview加载失败,所有delegate都不调用

原因:加载的NSUrl中包含中文

解决方式:转码

<1>    NSString*hStr =@"中国";

NSString*hString = [hStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

注释:其实这个方式就可以解决问题,但是iOS9之后遗弃了,不愿看到警告的我们继续查找

<2>    NSString*hString = [hStr stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];

其它:

URLFragmentAllowedCharacterSet  "#%<>[\]^`{|}

URLHostAllowedCharacterSet      "#%/<>?@\^`{|}

URLPasswordAllowedCharacterSet  "#%/:<>?@[\]^`{|}

URLPathAllowedCharacterSet      "#%;<>?[\]^`{|}

URLQueryAllowedCharacterSet     "#%<>[\]^`{|}

URLUserAllowedCharacterSet      "#%/:<>?@[\]^`

注释:这个方式苹果官方提供的新的方法,其它的类型大家看名字就很好懂就不多说了

拓展:解码

<1>    NSString*str3 =@"\u4f55\u8054\u7cfb\u5ba2\u670d\u4eba\u5458";

NSString*str5 = [str3 stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

注释:这个跟上面一样旧的解码方法

<2>    NSString*str5 = [str3 stringByRemovingPercentEncoding];

注释:这个是新的解码方法,简单明了

上一篇下一篇

猜你喜欢

热点阅读