在Ajax编程时会存在这编码问题,需要进行简单的处理:

  • 发送get请求

    产生乱码的原因:

      ie浏览器对应的ajax对象对中文参数值会使用gbk进行编码,而其它浏览器会使用utf-8进行编码。web服务器默认情况下,会使用iso-8859-1进行解码。

    解决方案:   

  1. 使用encodeURI<js内置的函数>函数对请求地址进行编码。该函数会对其中的中文参数值按照utf-8进行编码。
  2. 让服务器统一使用utf-8进行解码。比如,可以修改tomcat的配置文件。conf/server.xml对<Connector>添加URIEncoding="utf-8"。tomcat会对所有的get请求<对Post请求无效>中的参数使用utf-8进行解码。

 

  • 发送post请求

   产生乱码的原因:

所有浏览器对应的ajax对象对中文参数都使用utf-8进行编码。服务器使用iso-8859-1进行解码。

   解决方案:  

   

request.setCharacterEncoding("utf-8");