PHP解決ajax(動態(tài)網(wǎng)站靜態(tài)化)中文亂碼resopnseText中文亂碼xml(標準化越來越近了)http中文亂碼
方案一:指定正確的編碼
header("content-type: text/html;charset=gb2312");
方案二:全部統(tǒng)一為utf-8編碼
方案三:javascript的escape方法,基本中文字符轉化成unicode格式提交,在服務器短使用java來模擬javascript的unescape方法還原成中文,進行處理。
出現(xiàn)問題的原因:xml(標準化越來越近了)HTTP得到Response時假定Response是UTF8編碼的,如果Response是xml(標準化越來越近了),那還可以通過encoding來指定編碼,但HTML就不行了。所以它把含GB2312編碼的HTML當成UTF8格式而出現(xiàn)亂碼。
PHP發(fā)送中文、Ajax接收
只需在php頂部加入一句:
header('Content-type: text/html;charset=GB2312');
xmlHttp會正確解析其中的中文。
Ajax發(fā)送中文、PHP接收
這個比較復雜:
Ajax中先用encodeURIComponent對要提交的中文進行編碼
PHP中:
$GB2312string=iconv( 'UTF-8', 'gb2312//IGNORE' , $RequestAjaxString);
PHP寫入MySQL數(shù)據(jù)庫
建立conn時,query一下set names "gb2312"
==================================================
注意紅色部分!??!否則無法使用?。?!具體原因自己猜!
iconv( "UTF-8","GBK" , $gametypes["name"]);