Ajax应用-中文乱码问题

本文介绍了在使用Ajax技术时如何解决中文乱码的问题。针对GET和POST提交方式,提供了编码转换的方法,并说明了如何确保服务器端数据采用UTF-8编码。
Ajax不支持多种字符集,它默认的字符集是UTF-8,所以在应用Ajax技术的程序中应及时进行编码转换,否则对程序中出现的中文字符将变成乱码。

一、发送请求是出现乱码
将数据提交到服务器有两种方法,一种是使用GET方法提交;另一种是使用POST方法提交。
(1)当接收使用GET方法提交的数据是,要将编码转换为GBK或者GB2312.
例如:将省份名称的编码转换为GBK的代码如下:

String selProvince=request.getParameter("parProvince");//获取选择的省份
selProvince=new String(selProvince.getBytes("ISO-8858-1"),"GBK");

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

String username=request.getParameter("user");//获取用户名
username=new String(username.getBytes("ISO-8858-1"),"UTF-8");

二、获取服务器的响应结果时出现中文乱码
由于ajax在接收responseText或responseXML的值时是按照UTF-8的编码格式进行解码的,所以如果服务器端传递的数据不是UTF-8格式,在接收responseText或responseXML的值时,就可能产生乱码,解决的办法是保证从服务器端传递的数据采用UTF-8的编码格式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值