【问题标题】:php echo and echo json_encode returns weird charactersphp echo 和 echo json_encode 返回奇怪的字符
【发布时间】:2013-06-06 21:09:20
【问题描述】:

所以我正在使用 xampp 在 windows 上使用 PHP 和 MongoDB 开发一些东西,我将我的 php 文件移动到 linux mint,它使用 php cgi 5.4 运行 apache2。

在我将文件(未更改)移动到 linux 后,php 在每次响应后开始返回这些奇怪的字符。

echo 'success';

回复是这样的

sucess����������������

转换后的样子

sucess�

似乎它们被附加到所有内容的末尾,这里是萤火虫响应的屏幕截图(仅在图片的左侧)

Link to the Image

mongod 还开始回显一些 windows 上从未存在过的错误(图片右侧供参考)。

我不使用任何特殊字符、语言、编码等。

有没有人经历过这样的事情?

【问题讨论】:

  • 检查文件中是否有任何BOM 字符
  • 你尝试过回显后退出吗?
  • @steven 如果我退出('whaat'),响应是 whaat����������������
  • @swapnesh 它看起来像它的 BOM 字符,但我尝试 sed 删除它们,但仍然没有变化
  • @abdu 我检查了您的屏幕截图..您也遇到了连接错误..检查端口是否空闲..您在代码中声明了

标签: php ajax json mongodb


【解决方案1】:

Mongo 将所有字符串存储为 utf-8 并期望它们以这样的形式传递。只需在从 mongo 获取数据之前将数据转换为 utf-8 即可。

【讨论】:

  • 即使我回显“成功”,mongodb 根本没有数据,也会出现此问题。
  • 我不生成 html,我用 ajax 回显数据(字符串/json 字符串)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-15
相关资源
最近更新 更多