// 如果传送参数是直接赋予的, 就会产生乱码!
代码如下:
- http_request.open("POST",url,true);
- http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
- http_request.send("action="+strName+"&val="+val); // 如果 val 的值为中文, 则产生乱码
- // 解决方法很简单: 使用 javascript 中的 escape(string) 函数
代码如下:
- http_request.open("POST",url,true);
- http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
- http_request.send("action="+strName+"&val="+escape(val)); //val 的值为中文不会产生乱码
关于在 AJAX 中 GET 回的 ResponseText 中文乱码的最简解决办法
用 AJAX 来 GET 回一个页面时, RESPONSETEXT 里面的中文多半会出现乱码, 这是因为 xmlhttp 在处理返回的 responseText 的时候, 是把 resposeBody 按 UTF-8 编码进解码考形成的, 如果服务器送出的确实是 UTF-8 的数据流的时候汉字会正确显示, 而送出了 GBK 编码流的时候就乱了解决的办法就是在送出的流里面加一个 HEADER, 指明送出的是什么编码流, 这样 XMLHTTP 就不会乱搞了
代码如下:
- PHP:header('Content-Type:text/html;charset=GB2312');
- ASP:Response.Charset("GB2312")
- JSP:response.setHeader("Charset","GB2312");
来源: https://www.php1.cn/detail/php-5c8a4b42eb.html