Ajax 中文乱码处理

来源:互联网 发布:工程类 网络类 编辑:程序博客网 时间:2024/05/29 17:24

Ajax在向服务器提交参数时, 未免也会使用中文. 而使用字符如果不注意编码就会出现乱码情况.

中文乱码产生的终极原因: 字符编码解码使用的并非是同一字符集引起.


1- 对于GET请求

不同浏览器, 对中文的默认编码并非相同. IE浏览器会使用"GBK"对中文参数值进行编码, 而其它浏览器会使用"UTF-8"来编码. 服务器端默认使用"ISO-8859-1"来解码.


方法一:设置tomcat服务器参数, 让服务器统一使用"UTF-8"来编码.

服务器配置路径:apache-tomcat-7.0.73\conf\server.xml    打开

修改第65行:

<Connector URIEncoding="UTF-8" connectionTimeout="20000" port="8081" protocol="HTTP/1.1" redirectPort="8443"/>

增加 URIEncoding="UTF-8" 属性. 为所有GET请求的处理进行统一字符编码.

修改服务器配置后, 务必需要重新启动服务器.


方法二:javascript代码中使用内置函数

客户端在发送请求前, 对数据进行编码. 可以使用javascript内置函数进行编码解码.

不管是IE还是非IE, 均使用encodeURI()进行UTF-8编码,  解决不同浏览器产生的不同编码.

encodeURI(参数):对参数中所有的Unicode字符按UTF-8编码.  常用encodeURIComponent()方法.

decodeURI(参数):对参数中所有的Unicode字符按UTF-8解码.  常用decodeURIComponent()方法.

如encodeURI('白居易')


2- 对于POST请求

浏览器使用"UTF-8"编码, 服务器默认使用"ISO-8859-1"来解码.

解决方法:在服务端设置  request.setCharacterEncoding="UTF-8"; (添加在获取请求参数值的所有语句前.)


0 0
原创粉丝点击