php - 来自 MySQL 数据库的特殊字符的 json_encode

标签 php mysql json utf-8

我需要将 MySQL 查询的结果编码为 JSON 格式。

我的数据库的编码是utf8_unicode_ci

特别是,我的数据库中存储了一些特殊字符(例如,€),当我应用 PHP 函数 json_encode 时,这些字符会生成空值。

我该如何解决这个问题?

最佳答案

我的盲目猜测是你的 MySQL 数据库连接没有设置为 UTF-8,这导致即使源数据库是 UTF-8 也会返回 ISO-8859-1 字符。

Those characters will break json_encode()因为它们在 json_encode() 期望的 UTF-8 字符集中无效。

您可能必须将连接编码设置为 UTF-8。如何做到这一点取决于您使用的库。

mysql_*函数族中,一种方式是

mysql_query("SET names utf8;");

或者在 MySQL > 5.0.7 中,新的

mysql_set_charset("utf8");

关于php - 来自 MySQL 数据库的特殊字符的 json_encode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5788191/

相关文章:

php - 如何只显示一级子类别?

php - 无法让 google-api 工作

php - 每个用户的特定页面,php 和 mysql

javascript - 在 JavaScript 中发布解析 JSON 字符串

json - 使用jsonnet覆盖嵌套列表元素

php - 我需要帮助创建一个 php 脚本,该脚本将使用 html 表单过滤并显示 mysql 数据库的结果

php - 如何使用 PHP 解析具有多个 xml 声明的 xml 文件? (几个 XML 文件的串联)

php - 完全锁定在 MySQL 之外!

php - 避免使用双 GROUP BY sql 语句的 PHP 解决方法

javascript - 如何将getJson获取的数据转换为对象?