由PHP写入文件的JSON中的奇怪字符(�)

时间:2015-04-17 09:34:33

标签: javascript php json encoding utf-8

我有一个PHP代码,可以在调用时写入JSON文件。该文件包含一些西班牙语和葡萄牙语的拉丁字符。当浏览器直接浏览到它的URL时,它会在浏览器上正确显示,但在应用程序和响应预览选项卡下的开发者控制台中,这些字符将替换为字符 。

图片更好地解释了这种情况: bad characters (点击图片以完整尺寸打开)

该文件使用以下代码用PHP编写:

file_put_contents('../data/cameras.json', $json, LOCK_EX);

我尝试了许多方法来修复此编码但没有成功(其中一些甚至删除了字符,但这不是一个可接受的解决方案)。

有关如何解决此问题的任何建议?

2 个答案:

答案 0 :(得分:1)

我已经下载了json文件,当在ANSI模式下在notepad ++中查看时,它看起来很好。所以我猜这个文件是WINDOWS-1252编码 我猜你想在用PHP编写的文件中使用UTF8

在编写文件之前尝试转换字符串的编码:

$json = mb_convert_encoding($json, "UTF-8", "WINDOWS-1252");

file_put_contents('../data/cameras.json', $json, LOCK_EX);

答案 1 :(得分:-1)

最常见的问题是.json文件未保存为UTF-8。用记事本打开文件,并将其保存为UTF-8。还要确保您的PHP文件是UTF-8。