AJAX传递中文参数时的编码问题

自己写网页都是UTF-8编码的,AJAX传递中文参数没任何问题。最近做一个chrome的插件,原网页是GB2312的,通过jquery.ajax传递参数后都会自动变为UTF-8编码,后台php处理会出现一些问题。这里用iconv函数进行编码转换。

$string= $_POST['string'];
$title = iconv('utf-8','gbk',$string);

mysql数据库设置了gbk编码也会输出时存在乱码的问题,在连接时设置编码。

$dbh = new PDO('mysql:host=localhost;port=3306;dbname=data;charset=gbk', 'root', '');

php用smtp方式发送邮件标题中文乱码的解决方法

在php采用smtp方式发送中文邮件时,正文一般没问题,标题会出现乱码,解决方法是:

假设发送的标题是:

$subject="这是测试邮件";

如果直接发送会出现乱码,需设置正确的格式,如UTF-8格式的:

$subject="=?UTF-8?B?".base64_encode($subject)."?=";

再发送出去,标题就不会有乱码了!