【问题标题】:Upside down quote “ json encoding returns null - PHP颠倒引号“ json编码返回null - PHP
【发布时间】:2023-03-11 09:05:02
【问题描述】:

我有一个用 PHP 编写的准备好的语句,它从 MySQL 中检索一个字符串,然后我使用 json_encode 将数据发送给客户端,效果很好。

当 MySQL 中的字符串包含“.”时会出现问题。

我应该对它进行不同的编码吗?或者使用一些特殊的标志?或者有其他的解决方案?

谢谢

【问题讨论】:

  • 从 CLI 输入(到 \u201c)时,它对我来说编码很好。你用的是什么版本的PHP?
  • null 从哪里返回?你能说得更具体一些吗,也许有一些代码?

标签: php prepared-statement json


【解决方案1】:

我应该对它进行不同的编码吗?

我会说是的。显然,您从数据库收到的字符串不是 UTF-8 编码的。这就是问题所在,因为json_encode­Docs 需要 UTF-8 编码的字符串。如果它们无效,它将返回NULL - 因为没有有效的数据要编码。

您可以通过使用json_last_error­Docs 函数检查最后一个错误来验证这一点。

因此,当您从数据库中查询数据时,请通过设置数据库客户端编码告诉数据库服务器您期望 UTF-8 编码的数据。请查阅您正在使用的数据库客户端库的文档,那里有记录。

另请参阅 json_encode() non utf-8 strings?,它显示了如果您不想更改数据库客户端连接,如何重新编码字符串本身。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-21
    • 1970-01-01
    • 1970-01-01
    • 2014-12-16
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多