ios如何获取数据之encodeURI和decodeURI-创新互联
这篇文章将为大家详细讲解有关ios如何获取数据之encodeURI和decodeURI,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
创新互联建站专业为企业提供千阳网站建设、千阳做网站、千阳网站设计、千阳网站制作等企业网站建设、网页设计与制作、千阳企业网站模板建站服务,10余年千阳做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。在APP开发过程中,免不了要进行ios的数据处理,在ios传递数据的过程中,会出现JSON数据获取不到的情况,这时候就轮到encodeURI 和 decodeURI出马了。
1、encodeURI,decodeURI
encodeURI:将字符串作为 URI 进行编码
•不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码( 即:- _ . ! ~ * ' ( ) )。
•目的是对 URI 全部的编码,因此对在 URI 中具有特殊含义的 ASCII 标点符号(即:;/?:@&=+$,#)是不会进行编码的。所以,此函数别名为 encodeURL 不为过,相当于 PHP 的 url_encode 。
例子:
encodeURI("http://ydr.me?user=hello 云淡然"); // "http://ydr.me?user=hello%20%E4%BA%91%E6%B7%A1%E7%84%B6" decodeURI("http://ydr.me?user=hello%20%E4%BA%91%E6%B7%A1%E7%84%B6"); // http://ydr.me?user=hello 云淡然
由于 encodeURI 是对 URL 的完整编码,所以常用于URL的跳转之处:
location.href=encodeURI('http://baidu.com/s?word=hello 云淡然'); // "http://baidu.com/s?word=hello%20%E4%BA%91%E6%B7%A1%E7%84%B6"
在各个浏览器打开该地址,表现均不相同:
•ie的url表现的最规范(完全按照encodeURI编码)
•chrome的url表现比较规范(部分按照encodeURI编码)
•firefox的url表现最不规范(完全没有安装encodeURI编码)
虽然各个浏览器的URL表现均不相同,但在 firefox 和 chrome 中url的可读性最高,ie最低。
2、encodeURIComponent 和 decodeURIComponent
encodeURI 是对完整的URL进行编码,而 encodeURIComponent 是对URL的参数进行编码的,并且其编码特点如下:
•不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码(即: - _ . ! ~ * ' ( ) )。
•目的是对 URI 部分的编码,因此对在 URI 中具有特殊含义的 ASCII 标点符号(即:;/?:@&=+$,#)是会进行编码的。
encodeURIComponent("http://ydr.me?user=hello world"); // "http%3A%2F%2Fydr.me%3Fuser%3Dhello%20world" decodeURIComponent("http%3A%2F%2Fydr.me%3Fuser%3Dhello%20world"); // http://ydr.me?user=hello world
由于 encodeURIComponent 是对URL部分编码,因此常用于queryString、hashSearch、hashPath以及Cookie中,如:
// queryString 编码 "http://ydr.me?from=" + encodeURIComponent("http://baidu.com"); // "http://ydr.me?from=http%3A%2F%2Fbaidu.com" // hashSearch、hashPath 编码 "http://ydr.me#?from=" + encodeURIComponent("http://baidu.com"); // "http://ydr.me#?from=http%3A%2F%2Fbaidu.com" "http://ydr.me#!from/" + encodeURIComponent("http://baidu.com"); // "http://ydr.me#!from/http%3A%2F%2Fbaidu.com" // cookie 编码 document.cookie = "from=" + encodeURIComponent("http://baidu.com"); // "from=http%3A%2F%2Fbaidu.com"
3、escape 和 unescape
escape 与 encodeURI 和 encodeURIComponent 类似,都是对字符串进行编码。不同点在于该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号(即: * @ - _ + . / )进行编码,其他所有的字符都会被转义序列替换。
注意:ECMAScript v3 反对使用该方法,应用使用 decodeURI() 和 decodeURIComponent() 替代它。
关于“ios如何获取数据之encodeURI和decodeURI”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
另外有需要云服务器可以了解下创新互联建站www.cdcxhl.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
文章名称:ios如何获取数据之encodeURI和decodeURI-创新互联
本文链接:http://cdiso.cn/article/dshddg.html