【发布时间】:2011-08-12 21:23:02
【问题描述】:
我需要将 MySQL 查询的结果编码为 JSON 格式。
我的数据库是编码utf8_unicode_ci。
特别是,我的数据库中存储了一些特殊字符(例如 €),当我应用 PHP 函数 json_encode 时会产生空值。
我该如何解决这个问题?
【问题讨论】:
我需要将 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");
【讨论】: