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];

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容