我如何确保 PHP json_encode 将对我从数据库读取的任何数据进行编码?

How can I make sure PHP json_encode will encode whatever data I read from the db?

通过 WAMP 上的 PHP 5.5 将数据保存到 MySQL 可以很好地保存。

通过 json_encode 将其召回给客户端确实有效,直到我将新数据删除并输入到我的数据库中。然后 json_encode 返回 nothing - 没有错误 - 没有数据。日志文件中没有错误。

新数据包含 德国街道名称(带有变音符号等)

我用 ascii 代码替换了德国街道名称。

json_encode 如我所料,问题解决了。

如何解决这个问题?

我的 MySQL INNODB 中的数据保存为 latin1。

在调用 json_encode 之前,是否需要在从数据库读取数据后过滤数据?其他方式?

使用下面的代码:

mysql_query('SET CHARACTER SET utf8');

在sql查询之前,

并在下面使用 json 编码:

json_encode($array, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP | JSON_UNESCAPED_UNICODE)