关于地址栏传中文参数乱码的解决办法
来源:互联网 发布:mac怎么下载土豆视频 编辑:程序博客网 时间:2024/06/07 07:39
首先,地址栏传中文是很不明智的,因为不同的浏览器对与中文的解析存在不同的方法。所以,建议如果能不用尽量不要用。
当然,很多时候奇葩需求要求我们必须解决这个办法。
下面,是解决个别奇葩需求的方法。
在中文参数加入到地址栏之前进行转码。(注意,简单转码是不可以的,浏览器会根据编码方式对已经编码的部分进行一次反编译。)
正确方法是:
在中文加入到地址栏前,进行两次encodeURI转码
在传输过程中浏览器会解析一遍,到达指定页面获取地址栏参数的时候,再进行一次decodeURI解码就可以了。
如果上面比较赘余的话,下面是a.html和b.html,可以通过例子查看如何实现
a.html
<!DOCTYPE html><html><head><meta charset="UTF-8"><title></title></head><body></body><script type="text/javascript">//这是第一个页面a.html//通过地址栏传参的方式设置第二个页面b.html的标题为:中文var title = "中文";var _t = encodeURI(encodeURI(title));window.location.href = "b.html?title="+_t;</script></html>b.html
<!DOCTYPE html><html><head><meta charset="UTF-8"><title></title></head><body></body><script type="text/javascript">var _t = getQueryString("title"); //获取地址栏参数var title = decodeURI(_t); //只需要转一次码document.getElementsByTagName("title")[0].innerHTML = title;//获取地址栏参数的方法function getQueryString(name) {var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");var r = window.location.search.substr(1).match(reg);if (r != null) return unescape(r[2]); return null;}</script></html>
把a.html和b.html复制到同一目录下,打开a.html即可看到效果。实测IE,Chrome,Fire Fox等主流浏览器均没有问题。
阅读全文
0 0
- 关于地址栏传中文参数乱码的解决办法
- 关于地址栏传中文参数request获取乱码问题
- 地址栏传中文参数乱码解决方案
- 解决地址栏传中文参数乱码问题
- .net 地址栏传中文乱码 的解决方法
- net 地址栏传中文乱码 的解决方法
- .net 地址栏传中文乱码 的解决方法
- 地址栏中传中文乱码
- JS传中文参数乱码时解决办法
- fusionchart link传中文参数乱码解决办法
- url传中文参数乱码解决办法
- php url地址栏传中文乱码解决方法
- 解决传中文参数乱码的问题
- hibernate之HQL传中文参数乱码 解决办法
- hibernate之HQL传中文参数乱码 解决办法
- jsp传中文参数Java后台获取乱码解决办法
- jsp传中文参数Java后台获取乱码解决办法
- 关于struts2URL传中文乱码的解决
- js鼠标悬浮实现菜单栏
- iOS推送-从证书申请->移动端代码->node.js服务端代码
- android做应用更新时,apk放到服务器,但无法下载的解决方法
- emmmmm......滚动数组和0/1背包问题的一些新体会
- 怎么在maven工程中配置tomcat插件
- 关于地址栏传中文参数乱码的解决办法
- robotFramework 与testlink集成
- Android MediaPlayer 播放各种来源的音频文件,特效控制
- Catch That Cow
- apache限制下载文件大小
- 跟着吴恩达学深度学习:用Scala实现神经网络-第一课
- socket
- php的各种时间查询
- React中国官网