PHP';s变量转储/打印输出是乱码-编码问题?

PHP';s变量转储/打印输出是乱码-编码问题?,php,debugging,character-encoding,gzip,Php,Debugging,Character Encoding,Gzip,我遇到了一个问题,在服务器上,var\u dump和print\r的输出完全乱码打印\u r输出纯胡言乱语(例如��]{W�8.�����-…等),而var\u dump至少给出了字符串(1664),然后是类似的胡言乱语(尽管这次用双引号括起来) 这看起来像是一个字符编码问题,但我找不到任何编码来解决它(我不知道为什么仅仅转储一个PHP对象就应该输出非ascii字符),和echo工作正常。或者,我想这可能是gzip问题。不管怎样,我怀疑这一定是PHP或Apache配置中的问题,但我不知道如何修复

我遇到了一个问题,在服务器上,
var\u dump
print\r
的输出完全乱码<代码>打印\u r输出纯胡言乱语(例如
��]{W�8.�����-…等),而
var\u dump
至少给出了
字符串(1664)
,然后是类似的胡言乱语(尽管这次用双引号括起来)

这看起来像是一个字符编码问题,但我找不到任何编码来解决它(我不知道为什么仅仅转储一个PHP对象就应该输出非ascii字符),和
echo
工作正常。或者,我想这可能是gzip问题。不管怎样,我怀疑这一定是PHP或Apache配置中的问题,但我不知道如何修复它

如果有人对如何解决这个问题有任何建议,我将不胜感激



更新:在进一步调查中,这似乎是我试图转储的特定对象特有的问题。正在讨论的对象是解码JSON请求的(通过curl)从API。是否有可能
json\u decode
curl
会被错误配置/破坏编码?

无论如何,我终于找到了这个问题的根源(我想!)


问题似乎是API的输出是通过
json\u decode
运行的,不管它是否是json。MySQL错误导致了一个错误页面,而不是json响应,当通过
json\u decode
运行时(通过接收它的API处理代码)在
var\u dump
产生上述乱码字符色拉之前。

可能的重复:不,据我所知,这是一个不同的问题。这不是一个一般的编码问题。这是一个关于
print\r
var\u dump
输出的问题。你到底想打印什么?我正在尝试转储一个PHP object表示一个API响应。有趣的是,我可以转储字符串和数组,看起来还可以,但是这个特定的对象被完全乱码了。这肯定不是“可能重复”问题的答案——正如问题中所述,(1)我尝试了不同的编码,和(2)如果这是一个通用的HTML/HTTP编码问题,那么它似乎不太可能只影响
var\u dump
/
print\r