我正在尝试通过以下函数从 mysql 数据库检索多行,其中一些包含表情符号:
<?php
ini_set('mssql.charset', 'UTF-8');
//$mysqli->query("SET NAMES 'utf8'");
$mysqli->query("SET character_set_client=utf8mb4");
$mysqli->query("SET character_set_connection=utf8mb4");
$mysqli->query("SET character_set_results=utf8mb4");
$mysqli->set_charset("utf8");
$sth = $mysqli->query($query);
if (!$sth) error_log("error Json query: $query");
$rows = array();
while($r = mysqli_fetch_assoc($sth)) {
$rows[] = $r;
}
//var_dump($rows);
print json_encode($rows, JSON_NUMERIC_CHECK | JSON_UNESCAPED_UNICODE);
?>
然而,每个表情符号的出现都被不同数量的问号所取代,但是 相反,如果我直接在 Sequel Pro 上执行 php 脚本的查询,表情符号将正确显示。显然,上面的函数存在一些错误,但正如您所见,我尝试了任何方法,但都没有成功。 应该如何配置查询?
最佳答案
感谢 Paul 的提示,该问题与重复使用有关:
$mysqli->set_charset("utf8")
这显然取代了以前的命令,将其取出表情符号显示就好了。
关于php - 通过 php 查询包含表情符号的表返回问号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59468727/