乱码产生的原因无非就是编码不一致。下面我们来看下Ajax乱码的原因及解决方案
(1)发送get请求
a,产生乱码问题的原因:
ie内置的ajax对象会使用"gbk"对中文进行编码,
其它浏览器内置的ajax对象会使用"utf-8"对中文
进行编码;服务器默认情况下,对于get请求发送
过来的数据,会使用"iso-8859-1"进行解码。
b,解决方式
step1, 让服务器使用指定的编码格式进行解码:
比如,可以修改tomcat的配置文件 conf/server.xml
,添加 URIEncoding="utf-8"。
step2,使用encodeURI函数对请求地址进行编码。
encodeURI函数会使用utf-8对中文参数进行编码。
(2)发送post请求
a,产生乱码问题的原因
浏览器内置的ajax对象,对中文参数都使用
"utf-8"进行编码。
服务器端使用"iso-8859-1"去解码。
b,解决方式
request.setCharacterEncoding="utf-8";