JSON 中的奇怪字符 (�) 由 PHP 写入文件
Weird characters (�) in JSON written by PHP to file
我有一个 PHP 代码,它在调用时写入 JSON 文件。该文件包含一些来自西班牙语和葡萄牙语的拉丁字符。直接浏览到 URL 时,它在浏览器上显示正确,但在应用程序和开发人员控制台中的响应预览选项卡下,这些字符被替换为字符 �.
图片可以更好地说明情况:
(点击图片打开全尺寸)
文件在PHP中写入,代码如下:
file_put_contents('../data/cameras.json', $json, LOCK_EX);
我尝试了很多方法来修复此编码但没有成功(其中一些甚至删除了字符,但这不是一个可接受的解决方案)。
有什么解决这个问题的建议吗?
最常见的问题是您的 .json 文件未保存为 UTF-8。用记事本打开文件,并将其另存为UTF-8。还要确保您的 PHP 文件是 UTF-8。
我已经下载了 json 文件,在 notepad++ 中以 ANSI
模式查看时,它看起来不错。所以我猜文件是 WINDOWS-1252
编码。
我猜您想在用 PHP 编写的文件中使用 UTF8
。
尝试在写入文件之前转换字符串的编码:
$json = mb_convert_encoding($json, "UTF-8", "WINDOWS-1252");
file_put_contents('../data/cameras.json', $json, LOCK_EX);
我有一个 PHP 代码,它在调用时写入 JSON 文件。该文件包含一些来自西班牙语和葡萄牙语的拉丁字符。直接浏览到 URL 时,它在浏览器上显示正确,但在应用程序和开发人员控制台中的响应预览选项卡下,这些字符被替换为字符 �.
图片可以更好地说明情况:
文件在PHP中写入,代码如下:
file_put_contents('../data/cameras.json', $json, LOCK_EX);
我尝试了很多方法来修复此编码但没有成功(其中一些甚至删除了字符,但这不是一个可接受的解决方案)。
有什么解决这个问题的建议吗?
最常见的问题是您的 .json 文件未保存为 UTF-8。用记事本打开文件,并将其另存为UTF-8。还要确保您的 PHP 文件是 UTF-8。
我已经下载了 json 文件,在 notepad++ 中以 ANSI
模式查看时,它看起来不错。所以我猜文件是 WINDOWS-1252
编码。
我猜您想在用 PHP 编写的文件中使用 UTF8
。
尝试在写入文件之前转换字符串的编码:
$json = mb_convert_encoding($json, "UTF-8", "WINDOWS-1252");
file_put_contents('../data/cameras.json', $json, LOCK_EX);