php - 通过 php 查询包含表情符号的表返回问号

标签 php mysql emoji

我正在尝试通过以下函数从 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/

相关文章:

php - Laravel Eloquent ORM 多对多关系不适用于与其他表的连接?

php - 使用 PDO 查询代替 mysql 即弃用

mysql - 查询两个没有任何关系的表

php - 如何以更易读的格式显示 php 错误

php - 当我将它们留空时,Woocommerce 自定义字段不会更新,并且仍然显示空字段

java - 表情符号在 ajax 后在 MySQL 表列和 HTML 中呈现,但在页面重新加载后不会呈现。为什么?

ios - 使用表情符号向字符串添加属性会破坏一些表情符号

ios - 是否可以在 IOS 8 中制作自定义表情符号键盘

php - 需要帮助调整选择查询以将 Match/Against 子句更改为 Like 子句

php - MYSQL 按名称在 PHP 中选择行