Php utf8\u unicode\u ci似乎不是utf8
我的mySql数据库有点奇怪。。。 我的表是用utf8\uUnicode\uCI编码的,但当我对其进行选择时,数据似乎不是utf8,因为json\uEncode给出了一个空字符串 我必须重新浏览结果,以UTF8重新编码数据Php utf8\u unicode\u ci似乎不是utf8,php,mysql,sql,json,Php,Mysql,Sql,Json,我的mySql数据库有点奇怪。。。 我的表是用utf8\uUnicode\uCI编码的,但当我对其进行选择时,数据似乎不是utf8,因为json\uEncode给出了一个空字符串 我必须重新浏览结果,以UTF8重新编码数据 $q = $this->db->prepare("SELECT ..."); $q->execute(); $data = $q->fetchAll(); foreach ($data as $key =>
$q = $this->db->prepare("SELECT ...");
$q->execute();
$data = $q->fetchAll();
foreach ($data as $key => $value) {
$data[$key] = utf8_encode($value);
}
return $data;
之后,json_编码完成他的工作。但是我不明白为什么我的表编码为utf8\U unicode\U ci的SELECT结果没有直接提取utf8中的数据。。。重新浏览阵列是非常多余的
感谢您的帮助仅用UTF-8编码Mysql表是不够的。这只能确保数据存储在UTF-8中。当它被传递到外部源时,甚至传递的管道也必须进行UTF-8编码。您还需要设置 它的工作原理是这样的:
$mysqli = new mysqli("server", "user", "password", "test");
$mysqli->set_charset("utf8");
还可以查看SET NAMES utf8的确,谢谢@raidenace。我必须将[PDO::MYSQL\u ATTR\u INIT\u COMMAND=>SET NAMES utf8]添加到PDO连接中。