PHP 的 var_dump / print_r 输出是乱码 - 编码问题?
PHP's var_dump / print_r output is garbled - encoding issue?
我遇到一个问题,在服务器上 var_dump
和 print_r
的输出完全是乱码。 print_r
输出纯粹的乱码(例如 ��]{W�8�����-
... 等),而 var_dump
至少给出 string (1664)
,然后是类似的乱码(尽管这次用双引号引起来) .
这看起来像一个字符编码问题,但我找不到任何编码似乎可以解决它(而且我不知道为什么只是转储一个 PHP 对象应该输出非 ascii 字符), echo
工作正常。或者,我想知道这是否可能是 gzip 问题。无论哪种方式,我怀疑它一定是 PHP 或 Apache 配置中的某些东西,但我不知道如何修复它。
如果有人对如何解决这个问题有任何建议,我将不胜感激!
更新: 经进一步调查,这似乎是我要转储的特定对象特有的问题。有问题的对象是从 API 请求(通过 curl)解码的 JSON。 json_decode
或 curl
是否有可能被错误配置/破坏编码?
不管怎样,我终于弄清了这个问题的真相(我想!)
问题似乎是 API 的输出是 运行 到 json_decode
,无论它是否是 JSON。 MySQL 错误导致错误页面,而不是 JSON 响应,当 运行 到 json_decode
之前(由接收它的 API 处理代码) var_dump
制作的乱码沙拉,如上。
我遇到一个问题,在服务器上 var_dump
和 print_r
的输出完全是乱码。 print_r
输出纯粹的乱码(例如 ��]{W�8�����-
... 等),而 var_dump
至少给出 string (1664)
,然后是类似的乱码(尽管这次用双引号引起来) .
这看起来像一个字符编码问题,但我找不到任何编码似乎可以解决它(而且我不知道为什么只是转储一个 PHP 对象应该输出非 ascii 字符), echo
工作正常。或者,我想知道这是否可能是 gzip 问题。无论哪种方式,我怀疑它一定是 PHP 或 Apache 配置中的某些东西,但我不知道如何修复它。
如果有人对如何解决这个问题有任何建议,我将不胜感激!
更新: 经进一步调查,这似乎是我要转储的特定对象特有的问题。有问题的对象是从 API 请求(通过 curl)解码的 JSON。 json_decode
或 curl
是否有可能被错误配置/破坏编码?
不管怎样,我终于弄清了这个问题的真相(我想!)
问题似乎是 API 的输出是 运行 到 json_decode
,无论它是否是 JSON。 MySQL 错误导致错误页面,而不是 JSON 响应,当 运行 到 json_decode
之前(由接收它的 API 处理代码) var_dump
制作的乱码沙拉,如上。