从mysql数据库查询特殊字符

bis0qfac  于 2021-06-19  发布在  Mysql
关注(0)|答案(2)|浏览(295)

我正在使用 PHP 7.1.8 我正在查询我的数据库。但是,序列化数组具有特殊字符,如下所示: 下面是我的代码示例:

// connect to db
$dbname = $conf['dbName'];
$dbuser = $conf['user'];
$dbpass = $conf['pwd'];
$dbhost = $conf['host'];

// Create connection
$conn = new mysqli($dbhost, $dbuser, $dbpass, $dbname);

$arr = $conn->query("SELECT * FROM postmeta WHERE post_id = "100" and meta_key = 'val' LIMIT 1;")->fetch_assoc()["meta_value"];

当直接查询数据库时,我得到 . 请看下面我的$arr

这个错误基本上导致了我不能 unserialize 数据正确。
有什么建议可以纠正这个错误吗?
感谢您的回复!

6tdlim6h

6tdlim6h1#

$conn = new mysqli($dbhost, $dbuser, $dbpass, $dbname);
/* change character set to utf8 */
if (!$conn->set_charset("utf8")) {
    printf("Error loading character set utf8: %s\n", $conn->error);
    exit();
} else {
    printf("Current character set: %s\n", $conn->character_set_name());
}
$arr = $conn->query("SELECT * FROM postmeta WHERE post_id = "100" and meta_key = 'val' LIMIT 1;")->fetch_assoc()["meta_value"];

请检查输出。

bgibtngc

bgibtngc2#

问题在于整理。mysql返回当前编码不支持的特定符号(温度符号)。
在您选择以下选项之前尝试执行此查询: set names 'utf8'; 另外,如果要以某种html响应显示这些数据,请不要忘记添加 charset=UTF-8 到你的元标签 Content-type .

相关问题