200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > ios html特殊字符转义字符 iOS URL 字符转义问题

ios html特殊字符转义字符 iOS URL 字符转义问题

时间:2021-02-15 19:21:25

相关推荐

ios html特殊字符转义字符 iOS URL 字符转义问题

图片发自简书App

前段时间,做马甲包相关的知识,把H5资源下载到本地,然后从本地解析js,渲染并加载css和图片等。再此过程中,遇到了URL字符串自动转义的问题,记录一下~

项目需要从本地加载的Url链接是

/var/mobile/Containers/Data/Application/22438350-8530-4B0B-BFDD-FBCE7A9F873B/Documents/components/dist/main.html#/main

但是调用

NSURL * URL = [NSURL fileURLWithPath:indexHtmlPath];

打印URL.absoluteString却变成了

file://var/mobile/Containers/Data/Application/22438350-8530-4B0B-BFDD-FBCE7A9F873B/Documents/components/dist/main.html%23/main

什么鬼,我的 # 被%23吃了,快还我#。我找来了“谷歌”和“百度”两位大神来赶走%23,结果呐,铩羽而归~

原来,webView的Url链接中的特殊字符串在未经我允许的情况下,摇身一变,我不认识了。QAQ~

URL编码和ASCII码值间的转换:

+ URL 中+号表示空格 %2B

空格 URL中的空格可以用+号或者编码 %20

/ 分隔目录和子目录 %2F

? 分隔实际的URL和参数 %3F

% 指定特殊字符 %25

# 表示书签 %23

& URL 中指定的参数间的分隔符 %26

= URL 中指定参数的值 %3D

那既然这样,就想着解码吧,但是试了好几种方法,都无法阻挡Url转义,也是醉了~

做为一名打不死的小强,岂能就此放弃,解码走不通,能不能换一种方法呐?!结果,还真被我想出来了~

对比两个Url链接,除了# 被%23替换之外,链接还加了前缀file:/,我们能不能直接在初始化之前,自己拼接Url加上前缀,接着用我们常见的Url初始化方法,来初始化呐,答案是肯定de

indexHtmlPath = [NSString stringWithFormat:@"file:/%@", indexHtmlPath];

NSURL * URL = [NSURL URLWithString: indexHtmlPath];

如果你有更好的解决方法,欢迎留言~

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。