JS改为GB2312编码后传中文参数乱码问题

JavaScript028

JS改为GB2312编码后传中文参数乱码问题,第1张

首先,跳转前后的两个页面(比如你的

js代码

所在的页面以及/so/中的那个默认页面,如果是同一个那就当我没说)的编码格式应该一致,都应该是

gb2312

其次,如果网址参数中含有

特殊字符

(汉字也属于特殊字符),应该对其进行编码:

window.location.href

=

"/so/?keyword="

+

escape(keyword)

+

"&sid=1"

还是直接UTF-8吧  我告诉你什么原因 是因为

  你这个JS文件保存的时候 内部编码选择的其他的编码

所以即使你切换到GB2312或者UTF-8 HTML端和JS端还是会有一个出问题 所以最好的办法是 切换到你 JS不乱码的情况下 然后复制所有JS 然后在新建一个文件然后保存选择UTF-8

更多优质教程   来自绿叶学习网

然而你这并不是写JS的问题, 而是Server端编码没写好

但既然你在用JS就可以无视编码了

所有的字符都可以被\uxxxx替代

比如

'测试' == '\u6e2c\u8a66'

甚至你可以这麽写代码

\u0061\u006c\u0065\u0072\u0074('\u6e2c\u8a66')

具体到如何得到这个串, 方法很多, 而且JS自身就能做到, 比如

'测试'.replace(/[\u0100-\uffff]/g,function(S)

{

return '\\' + escape(S).substr(1)

})

所以说你在发布时就把字符串转换好然後就没有什麽忧虑了