在使用JQuery.ajax方法时肯定会遇到一个问题。在编码不是UTF-8的时候(如gb2312),当传递的参数里有中文的时候,服务端Request的时候都会出现乱码。本人最近也遇到了需要传递中文参数的问题。
在jquery源文件中修改一下代码
type:"GET",contentType:"application/x-www-form-urlencoded", 修改前
type:"GET",contentType:"application/x-www-form-urlencoded;charset=UTF-8", 修改后
修改正常情况使用 GET方式提交(GET一定要大写),不在需要在encodeURI()后在服务器端解码,就像传递英文一样传递中文。
jquery乱码的原因,在未指定字符集的时候,是使用ISO-8859-1
ISO8859-1,通常叫做Latin-1。Latin-1包括了书写所有西方欧洲语言不可缺少的附加字符。
jquery的Ajax根本没有考虑到国际化的问题,使用了欧洲的字符集,所以才引起了传递中文出现乱码的问题。