ajax产生乱码的原因整理如下 1、xtmlhttp 返回的数据默认的字符编码是utf-8,如果客户端页面是gb2312或者其它编码数据就会产生乱码 2、post方法提交数据默认的字符编码是utf-8,如果服务器端是gb2312或其他编码数据就会产生乱码
解决方法之一若客户端是gb2312编码,则在服务器指定输出流编码,就是在PHP文件中显示声明为GB2312:
header("Content-Type:text/html;charset=GB2312"); 而对于发送到服务器的中文进行转码。飞!飞Asp技术乐园 如下
$_POST["content"]=iconv("UTF-8","gb2312",$_POST["content"]); 因而这样可以解决乱码问题
方法二,是都采用UTF-8编码。这里就不多说了
PHP发送中文、Ajax接收 只需在php顶部加入一句: header('Content-type: text/html;charset=GB2312'); xmlHttp会正确解析其中的中文。飞飞Asp技术乐园
Ajax发送中文、PHP接收 这个比较复杂: Ajax中先用encodeURIComponent对要提交的中文进行编码 PHP中: $GB2312string=iconv( 'UTF-8', 'gb2312//IGNORE' , $RequestAjaxString);
PHP写入MySQL数据库 建立conn时,query一下set names "gb2312"
mysql_query("SET NAMES 'GB2312'");
==================================================
注意红色部分!!!否则无法使用!!!具体原因自己猜!
|