在项目中,常常需要对url、uri进行编【未经授权禁止转载】未经授权,禁止复制转载。码和解码,数据也要编码后进行传输,因此,【作者:唐霜】著作权归作者所有,禁止商业用途转载。本文要讲的内容就非常重要。在一些测试中,本文作者:唐霜,转载请注明出处。原创内容,盗版必究。我们发现,有的时候先进行php的enco著作权归作者所有,禁止商业用途转载。转载请注明出处:www.tangshuang.netdeurl编码,然后再进行decodeu著作权归作者所有,禁止商业用途转载。本文版权归作者所有,未经授权不得转载。rl解码,再用到javascript中,【转载请注明来源】【原创内容,转载请注明出处】结果会发生一些错误。编码到解码,会出现一未经授权,禁止复制转载。未经授权,禁止复制转载。些差错,这是由于不同的函数依照不同的标准【关注微信公众号:wwwtangshuangnet】【访问 www.tangshuang.net 获取更多精彩内容】进行编写,所以经过编码,再解码,就可能会【访问 www.tangshuang.net 获取更多精彩内容】未经授权,禁止复制转载。出现问题。
未经授权,禁止复制转载。本文版权归作者所有,未经授权不得转载。PHP中的urlencode和urldecode
urlencode是最传统的url编码函本文作者:唐霜,转载请注明出处。【未经授权禁止转载】数。特别是在<form>的数【作者:唐霜】转载请注明出处:www.tangshuang.net据传输中,php在接收表单时,就是以ur本文版权归作者所有,未经授权不得转载。【关注微信公众号:wwwtangshuangnet】lencode的结果形式进行接收的,如果本文作者:唐霜,转载请注明出处。【原创不易,请尊重版权】<form>的提交形式是ge本文版权归作者所有,未经授权不得转载。【版权所有,侵权必究】t,你就可以在结果地址中看到。但是在ph本文作者:唐霜,转载请注明出处。【版权所有,侵权必究】p中使用$_GET、$_POST进行接收原创内容,盗版必究。转载请注明出处:www.tangshuang.net时,结果却是已经urldecode了的。本文版权归作者所有,未经授权不得转载。本文版权归作者所有,未经授权不得转载。官方文档的解释是:此编码与 WWW 表单【访问 www.tangshuang.net 获取更多精彩内容】【版权所有,侵权必究】 POST 数据的编码方式是一样的,同时【未经授权禁止转载】本文版权归作者所有,未经授权不得转载。与 application/x-www-fo【转载请注明来源】本文作者:唐霜,转载请注明出处。rm-urlencoded 的媒体类型编码方式一样。
【本文受版权保护】本文版权归作者所有,未经授权不得转载。【访问 www.tangshuang.n【访问 www.tangshuang.net 获取更多精彩内容】【访问 www.tangshuang.net 获取更多精彩内容】et 获取更多精彩内容】urlencode在编码中文和一些字符时【版权所有】唐霜 www.tangshuang.net本文作者:唐霜,转载请注明出处。,就是将其转换为对应的十六进制编码。
【原创不易,请尊重版权】【访问 www.tangshuang.n【版权所有,侵权必究】【版权所有,侵权必究】et 获取更多精彩内容】【原创不易,请尊重版权】未经授权,禁止复制转载。urldecode在解码时,也有GB23未经授权,禁止复制转载。著作权归作者所有,禁止商业用途转载。12和UTF-8之分,主要是用在不同的搜【访问 www.tangshuang.net 获取更多精彩内容】【关注微信公众号:wwwtangshuangnet】索引擎中,谷歌雅虎使用的是UTF-8,而【版权所有,侵权必究】原创内容,盗版必究。百度则使用的是GB2312。如何在GB2原创内容,盗版必究。【本文受版权保护】312和UTF-8之间转换呢?主要用到m【原创不易,请尊重版权】未经授权,禁止复制转载。b_convert_encoding函数【本文受版权保护】【访问 www.tangshuang.net 获取更多精彩内容】,具体这里就不赘述。
【原创不易,请尊重版权】【版权所有】唐霜 www.tangshu【访问 www.tangshuang.net 获取更多精彩内容】【转载请注明来源】ang.net【关注微信公众号:wwwtangshua本文版权归作者所有,未经授权不得转载。著作权归作者所有,禁止商业用途转载。ngnet】中文 -> GB2312的Encode -> %D6%D0%CE%C4 中文 -> UTF-8的Encode -> %E4%B8%AD%E6%96%87
PHP中的rawurlencode和rawurldecode,及与urlencode的比较
urlencode虽然主要用在数据提交和未经授权,禁止复制转载。转载请注明出处:www.tangshuang.net传输过程中,但是如果在构造url时,ra【未经授权禁止转载】本文版权归作者所有,未经授权不得转载。wurlencode更好。rawurle【本文首发于唐霜的博客】【原创内容,转载请注明出处】ncode和encode的区别,主要是这【版权所有】唐霜 www.tangshuang.net本文作者:唐霜,转载请注明出处。两个函数编写时依据的标准不一样rawur【转载请注明来源】转载请注明出处:www.tangshuang.netlencode采用的是RFC1738 编原创内容,盗版必究。原创内容,盗版必究。码,主要区别在于,对一些特殊字符的编码结【作者:唐霜】【关注微信公众号:wwwtangshuangnet】果不同,rawurlencode对更多的【作者:唐霜】【原创内容,转载请注明出处】字符采用十六进制编码,特别是空格,url原创内容,盗版必究。本文作者:唐霜,转载请注明出处。encode编码空格后是加号+,而raw本文版权归作者所有,未经授权不得转载。【访问 www.tangshuang.net 获取更多精彩内容】urlencode编码空格后是%20.
【原创内容,转载请注明出处】【原创内容,转载请注明出处】urlencode(' ') => +
rawurlencode(' ') => %20
官方文档中指出,对~不再进行编码了。
【未经授权禁止转载】【原创不易,请尊重版权】未经授权,禁止复制转载。Javascript中的encodeURI和decodeURI
rawurlencode遵守是94年国际【本文首发于唐霜的博客】转载请注明出处:www.tangshuang.net标准备忘录RFC1738,而Javasc本文版权归作者所有,未经授权不得转载。【版权所有】唐霜 www.tangshuang.netript中的encodeURI也遵循该标未经授权,禁止复制转载。未经授权,禁止复制转载。准,所以从某种意义上,php的rawur【关注微信公众号:wwwtangshuangnet】未经授权,禁止复制转载。lencode的编码结果和Javascr本文作者:唐霜,转载请注明出处。未经授权,禁止复制转载。ipt的encodeURI的编码结果是一【访问 www.tangshuang.net 获取更多精彩内容】本文作者:唐霜,转载请注明出处。样的。
著作权归作者所有,禁止商业用途转载。未经授权,禁止复制转载。转载请注明出处:www.tangshua【关注微信公众号:wwwtangshuangnet】【作者:唐霜】ng.netencodeURI不编码字符有82个:!【转载请注明来源】著作权归作者所有,禁止商业用途转载。#$&'()*+,-./:;=?转载请注明出处:www.tangshuang.net【本文受版权保护】@_~0-9a-zA-Z
转载请注明出处:www.tangshua【原创不易,请尊重版权】【转载请注明来源】ng.net【版权所有】唐霜 www.tangshu著作权归作者所有,禁止商业用途转载。【访问 www.tangshuang.net 获取更多精彩内容】ang.netJavascript中的encodeURIComponent和decodeURIComponent
encodeURIComponent的意本文版权归作者所有,未经授权不得转载。原创内容,盗版必究。思非常明确,就是要对uri的组成部分进行【版权所有】唐霜 www.tangshuang.net本文版权归作者所有,未经授权不得转载。编码,我们用下面的例子来解释。
【原创不易,请尊重版权】本文版权归作者所有,未经授权不得转载。/test-url/测试.html
其中test-url和测试.html这两个段就是component,如果要进【本文受版权保护】【访问 www.tangshuang.net 获取更多精彩内容】行编码,就应该用encodeURICom【本文首发于唐霜的博客】【原创不易,请尊重版权】ponent。但是如果你用encodeU原创内容,盗版必究。【本文首发于唐霜的博客】RIComponent(‘/本文作者:唐霜,转载请注明出处。未经授权,禁止复制转载。test-url/测试.htmlR本文版权归作者所有,未经授权不得转载。本文版权归作者所有,未经授权不得转载。17;)进行编码,就会对’/【转载请注明来源】未经授权,禁止复制转载。’也进行编码,整个URI会变【版权所有,侵权必究】【版权所有,侵权必究】成编码后的十六进制字符串。而encode【原创不易,请尊重版权】未经授权,禁止复制转载。URI进行编码时,则不会对’【关注微信公众号:wwwtangshuangnet】【访问 www.tangshuang.net 获取更多精彩内容】/’进行编码,还是完整的UR【转载请注明来源】转载请注明出处:www.tangshuang.netI,只不过对uri component进原创内容,盗版必究。未经授权,禁止复制转载。行了编码。
【访问 www.tangshuang.n【版权所有】唐霜 www.tangshuang.net【未经授权禁止转载】et 获取更多精彩内容】原创内容,盗版必究。未经授权,禁止复制转载。encodeURIComponent不编【原创内容,转载请注明出处】【访问 www.tangshuang.net 获取更多精彩内容】码字符有71个:!'()*-._~0-9转载请注明出处:www.tangshuang.net【版权所有,侵权必究】a-zA-Z
转载请注明出处:www.tangshua【原创不易,请尊重版权】未经授权,禁止复制转载。ng.net【本文受版权保护】【版权所有】唐霜 www.tangshu未经授权,禁止复制转载。著作权归作者所有,禁止商业用途转载。ang.net未经授权,禁止复制转载。缺少了:#$&+,/:;=@
本文作者:唐霜,转载请注明出处。【版权所有】唐霜 www.tangshu【未经授权禁止转载】原创内容,盗版必究。ang.net故此,实际上,在Javascript的体【原创内容,转载请注明出处】【本文首发于唐霜的博客】系里,如果要对数据进行传输,要么不进行编【本文受版权保护】【原创内容,转载请注明出处】码,要么使用encodeURICompo【未经授权禁止转载】【关注微信公众号:wwwtangshuangnet】nent编码,再进行传输,这样才能让数据【作者:唐霜】转载请注明出处:www.tangshuang.net解码后不变样。
本文作者:唐霜,转载请注明出处。未经授权,禁止复制转载。【关注微信公众号:wwwtangshua【转载请注明来源】【关注微信公众号:wwwtangshuangnet】ngnet】2015-04-07 8133


