标签:
转载自:http://www.ruanyifeng.com/blog/2010/02/url_encoding.html
一。问题的由来。 url就是网址,只要上网就一定会用到。 一般来说,URL只能使用英文字母,阿拉伯数字和某些标点符号,不能使用其他文字和符号。 比如,世界上有英文字母的网址,http://www.xyz.com‘ 但是没有希腊文的网址http://aerfa,beita,segma.com。这是因为网络 标准RFC 1738做了硬性规定: 只有字母和数字[0-9a-zA-Z], 一些特殊符号$-_.+!*‘(),以及某些保留字,才可以不经过编码直接用于URL 这意味着,如果URL中有汉字,就必须编码后使用。但是麻烦的是RFC_1738没有规定具体的编码方法,而是交给应用程序‘浏览器’自己决定。 这导致url编码成为一个混乱的区域。 下面就让我们看看,“URL”编码到底有多混乱。我会依次分析四种不同的情况,在每一种情况中,浏览器的编码方法都不一样。 把他们的差异解释清楚之后,我再说如何用javascript找到一个统一的编码方法。 1, http://zh.wikipedia.org/wiki/春节 结论1;网址路劲的编码,用的是utf8编码 2,http://www.baidu.com/s?wd=春节 结论2:查询字符串的编码,用的是操作系统的默认编码。 3,在浏览器直接输入春节 baidu google 结论3:get和post方法的编码,用的是网页的编码 4,ajax调用的url包含汉字 ex: url=url+"?q=" + document.form.getelements[0].value. //假设表达提交的为春节。 http_request.open(‘GET‘, url, true); 结论4:在ajax调用中,ie总是采用GB2312编码(即操作系统默认编码), 而firefox总是采用utf-8编码。
标签:
原文地址:http://www.cnblogs.com/i80386/p/4576699.html