一般情况下,有以下两种情况可以产生中文乱码。
一、发送请求时出现中文乱码
具体解决方法如下。
1、当接收使用GET方法提交的数据时,要将编码转换为GBK、GB2312或是GB18030。
String selProvince=request.getParameter("parProvince"); //获取选择的省份
selProvince=new String(selProvince.getBytes("ISO-8859-1"),"GBK");
username=new String(username.getBytes("ISO-8859-1"),"UTF-8");
由于Ajax在接收responseText或responseXML的值时是按照UTF-8的编码格式进行解码的,所以如果服务器端传递的数据不是UTF-8格式,在接收responseText或responseXML的值时,就可能产生乱码。
解决的办法是保证从服务器端传递的数据采用UTF-8的编码格式。