繁体   English   中英

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

[英]json_encode of special chars from a MySQL database

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

我的数据库的编码为utf8_unicode_ci

特别是,我有一些特殊的字符(例如,€)存储在我的数据库中,当我应用PHP函数json_encode时它产生一个空值。

我怎样才能解决这个问题?

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

这些字符将破坏json_encode()因为它们在UTF-8字符集中无效, json_encode()期望这样。

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

mysql_*系列函数中,有一种方法

mysql_query("SET names utf8;");

或者在MySQL> 5.0.7中,新的

mysql_set_charset("utf8");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM