情况是这样子,我需要通过传一个中文到后台,然后对中文在后台做查询然后把结果返回到页面,还是中文。目前是中文从前台传到后的时候获取到的值为乱码。项目之前全部使用的是gb2312的编码,也没有做编码过滤器,查询了下AJAX的编码传送都是UTF-8,我把后台JSP页面也搞成了UTF-8还是不行,在这种情形下我应该如何修改能最快又不改动太大的方式取得结果。请大家帮忙,谢谢
下面是代码://改变显示上次电费信息
/*ajax */
var xmlHttp;
function createXMLHttpRequest() {
//表示当前浏览器不是ie,如ns,firefox
if(window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
} else if (window.ActiveXObject) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
}
function change_pre_df(obj){
var site_name = obj.value;
if (site_name != "") {
//建立Ajax核心对象
createXMLHttpRequest();
var url = "xml_pre_elec.jsp?county_id="+theForm.county_id.value+"&site_name="+site_name;
//和引擎建立连接
xmlHttp.open("POST", url, true);
//回调方法地址
xmlHttp.onreadystatechange=callback;
//将参数发到引擎
xmlHttp.send(null);
}else {
document.getElementById("pre_df_message").innerHTML = "";
}
}
function callback() {
if (xmlHttp.readyState == 4) {
if (xmlHttp.status == 200) {
var resTextSpan = document.getElementById("pre_df_message");
if (xmlHttp.responseText != "") {
resTextSpan.innerHTML = "<font color='red'>" + xmlHttp.responseText + "</font>";
}else {
resTextSpan.innerHTML = "";
}

}else {
alert("请求失败,错误码=" + xmlHttp.status);
}
}}对应的后台JSP页面代码如下:<%@page contentType="text/html;charset=utf-8"%>
<%@include file="../inc/header.jsp"%>
<%
//可以采用清除缓存的方法,如下
response.setContentType("text/xml");
response.setHeader("Cache-Control", "no-store"); //HTTP1.1    
response.setHeader("Pragma", "no-cache"); //HTTP1.0
response.setDateHeader("Expires", 0);

request.setCharacterEncoding("gb2312");
String site_name = request.getParameter("site_name");
String county_id = request.getParameter("county_id");
System.out.println(site_name); strsql = "select * from electricity where e_id=(select max(e_id) from  electricity where flag=1 and print_flag=2 and ems_id=(select ems_id from ems where county_id="
+ county_id + " and site_name='" + site_name + "'))";
System.out.println(strsql);
String pre_df_message = "";
conn.executeQuery(strsql, rs);
if (rs.next()) {
pre_df_message = "上次抄见:" + rs.getString("current_copy")
+ " 电费金额:" + rs.getString("e_amount");
out.println(pre_df_message);
} else {
pre_df_message = "尚未录入任何电费信息或基站名有错,若第一次录入请注意填写月份差!";
out.println(pre_df_message);
}
%>