微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Mark:Ajax参数中文编码乱码问题


link:http://jarg.iteye.com/blog/1300071

Ajax不支持多种字符集,其认的字符集是UTF-8,所以在应用Ajax技术的程序中应及时进行编码转换,否则对于程序中出现的中文字符将变成乱码。一般在以下两种情况下将产生乱码。


1.发送路径的参数中包括中文,在服务器端接收参数值时产生乱码

将数据提交到服务器有两种方法:一种是使用GET方法提交;另一种是使用POST方法提交。使用不同的方法提交数据,在服务器端接收参数时解决中文乱码的方法是不同的。具体解决方法如下。

(1)当接收使用GET方法提交的数据时,要将编码转换为GBK或是GB2312。例如:将省份名称的编码转换为GBK的代码如下。

String selProvince = request.getParameter("parProvince"); //获取选择的省份

selProvince = new String(selProvince.getBytes("ISO-8859-1"),"GBK");

(2)由于应用POST方法提交数据时,认的字符编码是UTF-8,所以当接收使用POST方法提交的数据时,要将编码转换为UTF-8。例如,将用户名的编码转换为UTF-8的代码如下。

String username = request.getParameter("user"); //获取用户名

username = new String(username.getBytes("ISO-8859-1"),"UTF-8");

2.返回到responseText或responseXML的值中包含中文时产生乱码

由于Ajax在接收responseText或responseXML的值时是按照UTF-8的编码格式进行解码的,所以如果服务器端传递的数据不是UTF-8格式,在接收responseText或responseXML的值时就可能产生乱码。解决方法是保证从服务器端传递的数据采用UTF-8的编码格式。

原文地址:https://www.jb51.cc/ajax/163045.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐