您的位置:首页 > 其它

关于URL编码

2010-10-13 14:59 211 查看
一般来说,URL只能使用英文字母、阿拉伯数字和某些标点符号,不能使用其他文字和符号。比如,世界上有英文字母的网址,没有希腊字母的网址。这意味着,如果URL中有汉字,就必须编码后使用。但是麻烦的是,RFC 1738没有规定具体的编码方法,而是交给应用程序(浏览器)自己决定。使用的操作系统和浏览器不同URL编码方式也不同,但是Javascript有统一的编码方式,就是统一使用utf-8编码。

情况1:网址路径的编码

IE和Firefox用的都是utf-8编码。例如http://zh.wikipedia.org/wiki/春节 URL编码是http://zh.wikipedia.org/wiki/%E6%98%A5%E8%8A%82。“春节”的utf-8编码是E6 98 A5E8 8A 82。

情况2:查询字符串包含汉字

查询字符串的编码,用的是操作系统的默认编码即GB2312编码。例如http://www.baidu.com/s?wd=春节 Firefox的URL编码是wd=%B4%BA%BD%DA,IE转换成16进制也是B4 BA BD DA

情况3:Get方法生成的URL包含汉字

GET和POST方法的编码,用的是网页的编码。举例来说,百度是GB2312编码,Google是UTF-8编码。因此,从它们的搜索框中搜索同一个词春节;,生成的查询字符串是不一样的。

情况4:Ajax调用的URL包含汉字

在Ajax调用中,IE总是采用GB2312编码(操作系统的默认编码),而Firefox总是采用utf-8编码。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: