PHP解决ajax(动态网站静态化)中文乱码resopnseText中文乱码xml(标准化越来越近了)http中文乱码
方案一:指定正确的编码
header("content-type: text/html;charset=gb2312");
方案二:全部统一为utf-8编码
方案三:javascript的escape方法,基本中文字符转化成unicode格式提交,在服务器短使用java来模拟javascript的unescape方法还原成中文,进行处理。
出现问题的原因:xml(标准化越来越近了)HTTP得到Response时假定Response是UTF8编码的,如果Response是xml(标准化越来越近了),那还可以通过encoding来指定编码,但HTML就不行了。所以它把含GB2312编码的HTML当成UTF8格式而出现乱码。
PHP发送中文、Ajax接收
只需在php顶部加入一句:
header('Content-type: text/html;charset=GB2312');
xmlHttp会正确解析其中的中文。
Ajax发送中文、PHP接收
这个比较复杂:
Ajax中先用encodeURIComponent对要提交的中文进行编码
PHP中:
$GB2312string=iconv( 'UTF-8', 'gb2312//IGNORE' , $RequestAjaxString);
PHP写入MySQL数据库
建立conn时,query一下set names "gb2312"
==================================================
注意红色部分!!!否则无法使用!!!具体原因自己猜!
iconv( "UTF-8","GBK" , $gametypes["name"]);