搜尋
首頁php教程php手册如何正确处理PHP Ajax乱码

如何正确处理PHP Ajax乱码

Jun 13, 2016 am 11:08 AM
ajaxphpunicode一般上傳亂碼如何數據用的編碼

由于XMLHTTP采用的是Unicode编码上传数据,而一般页面采用的是gb2312,这就造成显示页面时产生乱码。而当在获取页面时的XMLHttp返回的是utf-8编码,这就造成了显示产生乱码。

PHP Ajax乱码解决方法之一就是在PHP文件中显示声明为GB2312

header("Content-Type:text/html;charset=GB2312");

而对于发送到服务器的中文进行转码。

如下

$_POST["content"]=iconv("UTF-8","gb2312",$_POST["content"]);

因而这样可以解决PHP Ajax乱码问题

方法二,是都采用UTF-8编码。这里就不多说了

PHP Ajax乱码解决示例之客户端

<ol class="dp-xml">
<li class="alt"><span><span class="tag"><span> !DOCTYPE HTML PUBLIC "-//W3C//<br>DTD HTML 4.01 Transitional//EN"</span><span class="tag">></span><span>   </span></span></span></li>
<li><span class="tag"><span> </span><span class="tag-name">html</span><span class="tag">></span><span>   </span></span></li>
<li class="alt"><span class="tag"><span> </span><span class="tag-name">head</span><span class="tag">></span><span>   </span></span></li>
<li><span class="tag"><span> </span><span class="tag-name">meta</span><span> </span><span class="attribute">http-equiv</span><span>=</span><span class="attribute-value">"Content-Type"<br></span><span> </span><span class="attribute">content</span><span>=</span><span class="attribute-value">"text/html; charset=gb2312"</span><span class="tag">></span><span>   </span></span></li>
<li class="alt"><span class="tag"><span> </span><span class="tag-name">title</span><span class="tag">></span><span>ajax post test</span><span class="tag"></span><span class="tag-name">title</span><span class="tag">></span><span>   </span></span></li>
<li><span class="tag"><span> /head</span><span class="tag">></span><span>   </span></span></li>
<li class="alt"><span class="tag"><span> </span><span class="tag-name">body</span><span class="tag">></span><span>   </span></span></li>
<li><span class="tag"><span> </span><span class="tag-name">div</span><span> </span><span class="attribute">id</span><span>=</span><span class="attribute-value">"msg"</span><span class="tag">></span><span class="tag"><span> /div</span><span class="tag">></span><span>   </span></span></span></li>
<li class="alt"><span class="tag"><span> </span><span class="tag-name">script</span><span> </span><span class="attribute">language</span><span>=</span><span class="attribute-value">"javascript"</span><span class="tag">></span><span>   </span></span></li>
<li><span>/**   </span></li>
<li class="alt"><span>* 初始化一个xmlhttp对象   </span></li>
<li><span>*/   </span></li>
<li class="alt"><span>function InitAjax()   </span></li>
<li><span>{   </span></li>
<li class="alt">
<span> var </span><span class="attribute">ajax</span><span>=</span><span class="attribute-value">false</span><span>;   </span>
</li>
<li><span> try {   </span></li>
<li class="alt">
<span></span><span class="attribute">ajax</span><span> = </span><span class="attribute-value">new</span><span> ActiveXObject<br>("Msxml2.XMLHTTP");   </span>
</li>
<li><span> } catch (e) {   </span></li>
<li class="alt"><span>try {   </span></li>
<li>
<span> </span><span class="attribute">ajax</span><span> = </span><span class="attribute-value">new</span><span> ActiveXObject<br>("Microsoft.XMLHTTP");   </span>
</li>
<li class="alt"><span>} catch (E) {   </span></li>
<li>
<span> </span><span class="attribute">ajax</span><span> = </span><span class="attribute-value">false</span><span>;   </span>
</li>
<li class="alt"><span>}   </span></li>
<li><span> }   </span></li>
<li class="alt"><span> if (!ajax && typeof XMLHttp<br>Request!='undefined') {   </span></li>
<li>
<span></span><span class="attribute">ajax</span><span> = </span><span class="attribute-value">new</span><span> XMLHttpRequest();   </span>
</li>
<li class="alt"><span> }   </span></li>
<li><span> return ajax;   </span></li>
<li class="alt"><span>}   </span></li>
<li><span>//在form 测试页面内有一个表单,一个显示的层   </span></li>
<li class="alt"><span>function sendData()   </span></li>
<li><span>{   </span></li>
<li class="alt">
<span>var </span><span class="attribute">msg</span><span>=</span><span class="attribute-value">document</span><span>.getElementById("msg");   </span>
</li>
<li>
<span>var </span><span class="attribute">f</span><span>=</span><span class="attribute-value">document</span><span>.form1;   </span>
</li>
<li class="alt">
<span>var </span><span class="attribute">c</span><span>=</span><span class="attribute-value">f</span><span>.content.value;   </span>
</li>
<li><span>//接收数据的URL   </span></li>
<li class="alt">
<span>var </span><span class="attribute">url</span><span>=</span><span class="attribute-value">"dispmsg.php"</span><span>;   </span>
</li>
<li>
<span>var </span><span class="attribute">poststr</span><span>=</span><span class="attribute-value">"content="</span><span>+c;   </span>
</li>
<li class="alt">
<span>var </span><span class="attribute">ajax</span><span>=</span><span class="attribute-value">InitAjax</span><span>();   </span>
</li>
<li><span>ajax.open("POST",url,true);   </span></li>
<li class="alt"><span>ajax.setRequestHeader("Content-Type",<br>"application/x-www-form-urlencoded");   </span></li>
<li><span>ajax.send(poststr);   </span></li>
<li class="alt">
<span class="attribute">ajax.onreadystatechange</span><span>=</span><span class="attribute-value">function</span><span>(){   </span>
</li>
<li>
<span>if(</span><span class="attribute">ajax.readyState</span><span>==4 && </span><span class="attribute">ajax.status</span><span>==200){   </span>
</li>
<li class="alt"><span>alert("I got something");   </span></li>
<li>
<span class="attribute">msg.innerHTML</span><span>=</span><span class="attribute-value">ajax</span><span>.responseText;   </span>
</li>
<li class="alt"><span>}   </span></li>
<li><span>}   </span></li>
<li class="alt"><span>}   </span></li>
<li><span class="tag"><span> /script</span><span class="tag">></span><span>   </span></span></li>
<li class="alt"><span class="tag"><span> </span><span class="tag-name">form</span><span> </span><span class="attribute">name</span><span>=</span><span class="attribute-value">'form1'</span><span class="tag">></span><span>   </span></span></li>
<li><span class="tag"><span> </span><span class="tag-name">input</span><span> </span><span class="attribute">type</span><span>=</span><span class="attribute-value">"text"</span><span> </span><span class="attribute">name</span><span>=</span><span class="attribute-value">'content'</span><span> </span><span class="attribute">size</span><span>=</span><span class="attribute-value">10</span><span class="tag">></span><span>   </span></span></li>
<li class="alt"><span class="tag"><span class="tag-name">input</span><span> </span><span class="attribute">type</span><span>=</span><span class="attribute-value">"button"</span><span> </span><span class="attribute">value</span><span>=</span><span class="attribute-value">"确定"</span><span> <br></span><span class="attribute">onclick</span><span>=</span><span class="attribute-value">"sendData()"</span><span class="tag">></span><span class="tag"><span> !--我用submit时就出错--</span><span class="tag">></span><span>   </span></span></span></li>
<li><span class="tag"><span> /form</span><span class="tag">></span><span>   </span></span></li>
<li class="alt"><span class="tag"><span> /body</span><span class="tag">></span><span>   </span></span></li>
<li><span class="tag"><span> /html</span><span class="tag">></span><span> </span></span></li>
</ol>

PHP Ajax乱码解决示例之服务器端

<ol class="dp-xml">
<li class="alt"><span><span class="tag"><span> ?php   </span></span></span></li>
<li>
<span>header("Content-Type:text<br>/html;</span><span class="attribute">charset</span><span>=</span><span class="attribute-value">GB2312</span><span>");   </span>
</li>
<li class="alt"><span>if($_POST['content'])   </span></li>
<li><span>{   </span></li>
<li class="alt"><span>$_POST["content"]=iconv("<br>UTF-8","gb2312",$_POST["content"]);   </span></li>
<li><span>print("内容是".$_POST['content']);   </span></li>
<li class="alt"><span>}   </span></li>
<li><span>else   </span></li>
<li class="alt"><span>{   </span></li>
<li><span>print("没有内容发送");   </span></li>
<li class="alt"><span>}   </span></li>
<li>
<span class="tag">?></span><span>  </span>
</li>
</ol>

以上代码示例就是PHP Ajax乱码的相关解决方法,希望对又需要的朋友有所帮助。


陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具