打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
URL地址含有中文参数的解决办法

URL地址中含有中文字符是很麻烦的,前面描述过使用GET方法提交表单的情况,使用GET方法时,参数就是包含在URL中。

 1.URL编码

对于URL中的一些特殊字符,浏览器会自动进行编码。这些字符除了"/?&"等外,还包括unicode字符,比如汉子。这时的编码比较特殊。

IE有一个选项"总是使用UTF- 8发送URL",当该选项有效时,IE将会对特殊字符进行UTF-8编码,同时进行URL编码。如果该选项无效,则使用默认编码"GBK",并且不进行 URL编码。
但是,对于URL后面的参数,则总是不进行编码,相当于UTF-8选项无效。
比如"中文.html?a=中文",
当UTF-8选项有效时,将发送链接"%e4%b8%ad%e6%96%87.html?a=/x4e/x2d/x65/x87";
而UTF-8选项无效时,将发送链接"/x4e/x2d/x65/x87.html?a=/x4e/x2d/x65/x87"。
在此注意,不管此选项是否有勾选,后面的参数都没有改变,改变的仅仅是地址
当web server(tomcat)接收到该链接时,将会进行URL解码,即去掉"%",同时按照ISO8859-1编码(上面已经描述,可以使用URLEncoding来设置成其它编码)识别。上述例子的结果分别是"/ue4/ub8/uad/ue6/u96/u87.html?a=/u4e/u2d/u65/u87"和"/u4e/u2d/u65/u87.html?a=/u4e/u2d/u65/u87",注意前者前面的"中文"两个字恢复成了6个字符。这里用"/u",表示是unicode。

所以,由于客户端设置的不同,相同的链接,在服务器上得到了不同结果。这个问题不少人都遇到,却没有很好的解决办法。所以有的网站会建议用户尝试关闭UTF-8选项。不过,下面会描述一个更好的处理办法。

opera中编码的方式:

我查阅了很多的资料才发现在opera这个浏览器中采用的编码方式是:

先用UTF8对字符串进行编码,然后按RFC1738进行编码

这是查到的文档中这样说明实际上采用的编码方式为:

首先对汉字的GBK编码转化成UTF-8编码,然后再采用urlcode的编码方式转化成url的汉字编码。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
中文乱码的常见问题解决及相关编码知识 - Don‘t worry,be happy - C...
JAVA中文字符编码问题详解 控制台输出,字符编码格式转换
对于编码和解码的概念,你只需要看此文就够了
jsp get Url请求方式中文乱码问题解决办法
使用python进行URL编码
web请求编码的有关问题
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服