新鲜、有趣,互联生活。令狐葱。

2007/07/23

JavaScript URL地址传递中的中文乱码问题

今天发现一个很郁闷的问题,比如从一个页面传递一个参数到另一个页面的时候,如果为中文,也会出现乱码。(比如http://www.XXX.com?test=中文)。网上的解决方案不一而足,有的说使用escape函数,有的说需要把源码保存成utf-8编码格式,但是都没有解决我的问题。比如,“令狐葱”用escape 得到的结果是%C1%EE%BA%FC%B4%D0,但是我发现在搜索引擎中传过去的是%E4%BB%A4%E7%8B%90%E8%91%B1,我想这肯定是另一种编码方式,查了一下URLEncode,发现Javascript 还没有此方法,有人实现了发现也不好用。

后来查了一下Javascript的帮助文档,发现了一个encodeURI方法,试了一下解决了问题。居然如此简单,郁闷了一下午+一晚上啊!伟哥一来就解决了,关键是他什么都没说:>

encodeURI 方法

将文本字符串编码为一个有效的统一资源标识符 (URI)。

encodeURI(URIString)

必选的 URIString 参数代表一个已编码的 URI。

说明

encodeURI 方法返回一个编码的 URI。如果您将编码结果传递给 decodeURI,那么将返回初始的字符串。encodeURI 方法不会对下列字符进行编码:":"、"/"、";" 和 "?"。请使用 encodeURIComponent 方法对这些字符进行编码。

没有评论: