Home  >  Article  >  php教程  >  php+AJAX传送中文会导致乱码的问题的解决方法

php+AJAX传送中文会导致乱码的问题的解决方法

WBOY
WBOYOriginal
2016-06-13 12:27:111045browse

//如果传送参数是直接赋予的,就会产生乱码!

复制代码 代码如下:


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");


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn