iOS字符串编码<wkwebview>
今天跟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];
注释:这个是新的解码方法,简单明了