这些天 都在忙着中科杯的项目,是J2me 蓝牙和pc 蓝牙相结合的应用,没有很多时间去弄J2ee 的问题,昨天解决了同学一个Ajax异步请求乱码的问题,尝试了很多方法,像在action 接受时设置request.setCharacterEncoding("utf-8"),response.setCharecterEncoding("utf-8");或者request.setCharacterEncoding("GBK"); response.setCharacterEncoding("GBK");还是无济于事,最后用了如下方法搞定,因为ajax请求时必须确保请求的url是utf-8格式:<script language="javascript">
var http_request = false;
function createRequest(url) {
//初始化对象并发出XMLHttpRequest请求
http_request = false;
if (window.XMLHttpRequest) { // Mozilla或其他除IE以外的浏览器
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {
http_request.overrideMimeType("text/xml");
}
} else if (window.ActiveXObject) { // IE浏览器
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!http_request) {
alert("不能创建XMLHTTP实例!");
return false;
}
http_request.onreadystatechange = alertContents; //指定响应方法
//发出HTTP请求
http_request.open("GET", url, true);
http_request.send(null);
}
function alertContents() { //处理服务器返回的信息
if (http_request.readyState == 4) {
if (http_request.status == 200) {
document.getElementById("bc").innerHTML=http_request.responseText;
} else {
alert('您请求的页面发现错误'+http_request.status );
}
}
}
function save_xxap(url){
url=encodeURI(url);
url=encodeURI(url);
createRequest(url);
}
</script>
红色部分是处理url的函数,下面是在action收参数的处理
String zdbhsk=java.net.URLDecoder.decode(request.getParameter("bjsk"),"utf-8");
经过这两部就能将接受的参数变成中文了··