Ajax技术之解决中文乱码问题

来源:互联网 发布:淘宝产品质检报告 编辑:程序博客网 时间:2024/06/07 04:52

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

1、发送请求时出现中文乱码

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

(1)当使用GET方法提交数据时,要将编码转换为GBK或是UTF-8。

例:将省份名称的编码转换为UTF-8的代码如下:

String selProvince = request.getParameter("parProvince");selProvince = new String(selProvince.getBytes("ISO-8859-1"),"UTF-8");

(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、获取服务器的响应结果时出现中文乱码

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

1 0