ios获取数据之encodeURI和decodeURI的实例
在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=helloworld"); //"http%3A%2F%2Fydr.me%3Fuser%3Dhello%20world" decodeURIComponent("http%3A%2F%2Fydr.me%3Fuser%3Dhello%20world"); //http://ydr.me?user=helloworld
由于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标点符号(即:*@-_+./)进行编码,其他所有的字符都会被转义序列替换。
注意:ECMAScriptv3反对使用该方法,应用使用decodeURI()和decodeURIComponent()替代它。
以上这篇ios获取数据之encodeURI和decodeURI的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。