日语字符:PHP使用PDO和MySQL

时间:2013-07-04 15:37:07

标签: php mysql utf-8 pdo

我正在处理一些棘手的问题......我有一个MySQL数据库,其中包含UTF-8编码和utf8_general_ci整理。正确插入所有特殊字符,但不插入日文字符。这是我用来插入新行的代码:

$dbConnection = new PDO("mysql:host=000.000.000.000;dbname=db_name", "db_user", "db_pass", array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'"));
$dbConnection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$dbConnection->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);

$parameterArray = array();
$parameterArray[":1"] = utf8_encode($message);

$queryResult = $dbConnection->prepare(QUERY_USERS_INSERT_MESSAGE);
$queryResult->execute($parameterArray);

插入拉丁字符时,一切都顺利,甚至是ñ,à,ë等特殊的字符......但是当我尝试插入像たなは这样的日语字符时,MySQL会插入NULL ...

有什么想法吗?我一直在谷歌上搜索几个小时......

2 个答案:

答案 0 :(得分:0)

问题解决的人:

@deceze和@Daniel_Vérité得到了正确答案。

utf8_encode是问题。

谢谢。

答案 1 :(得分:-4)

通过将utf8_encode添加到$this->conn->exec("set names utf8");

来解决问题

示例:

$this->conn->exec("set names utf8_encode");

谢谢。