我正在处理一些棘手的问题......我有一个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 ...
有什么想法吗?我一直在谷歌上搜索几个小时......
答案 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");
谢谢。