AJAX在post时候返回数据出现乱码
网上说直接在送出的流里加个HEADER,指明送出的是什么编码流,这样XMLHTTP就不会出现乱码了,但是我的还是乱码。。。。
就是下面的代码:
<body id= "aaa ">
</body>
<script language= "javascript ">
try
{
xmlhttp = new ActiveXObject( "Msxml2.XMLHTTP.3.0 ");
xmlhttp.open( "POST ", "http://www.hzaic.gov.cn/EntStateQuery.do ", false);
xmlhttp.setRequestHeader( 'Content-type ', 'application/x-www-form-urlencoded;charset=GB2312; ');
xmlhttp.send( "ename=杭州普惠科技有限公司 ");
aaa.innerHTML = xmlhttp.responseText;
}
catch(e)
{
aaa.innerHTML = "error occurs: " + e.toString();
}
</script>
------解决方案--------------------服务器端取数:
String enname = request.getParameter( "enname ");
enname = new String( enname.getBytes( "ISO8859_1 "), "utf-8 " ) ;
------解决方案--------------------数据是UTF-8的,,你转换一下就可以了
在服务端
------解决方案--------------------对于需要传输中文或者特殊字符的
客户端请求时encode
服务器端接收时decode
------解决方案--------------------huo789(爱拼才会赢)解释的正确。
function encode(s) {
return encodeURIComponent(escape(s|| ' '));
}
function decode(s){
return unescape(unescape(s|| ' '));
}