PHP插入语句和MYSQL数据库上的编码问题

时间:2015-01-29 17:56:50

标签: php mysql

我在使用jquery和php将文本插入mysql数据库时遇到问题。我有一个jquery脚本,它使用.ajax将参数传递给执行插入的php页面。结果是我的数据库中的文本看起来像这个“ÂCC”。我希望它是“* CC”。我知道这可能与UTF-8编码有关但我无法弄清楚如何修复它。我的数据库表是“utf8_unicode_ci”。有人可以告诉我,我做错了吗?

我的.ajax代码是......

var comment = "* CC";
$.ajax({
    url: "php/add_riw_report.php",
    type: "post",
    dataType: "json",
    data: { comment: comment  },
});

在萤火虫中,POST来源是......

&grade=*%C2%A0CC

我在php页面顶部有这个...

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

插入php代码是......

$sql = "INSERT INTO 
        riw_events  
    VALUES(
        mysql_real_escape_string($_POST["comment"])."'
    )";
$rs=$db->query($sql);

1 个答案:

答案 0 :(得分:3)

必须将PDO对象配置为使用utf8 charset

$db = new PDO("mysql:host=localhost;dbname=DB;charset=UTF8");

对于Mysqli http://php.net/manual/en/mysqli.set-charset.php

$db->set_charset('utf8');