gpt4 book ai didi

php - json_encode 为 UTF-8 字符集返回 null

转载 作者:可可西里 更新时间:2023-11-01 00:06:30 24 4
gpt4 key购买 nike

我有一个这样的json文件

{"downloads":[
{
"url":"arquivo1.pdf",
"descricao":"árquivo 1"
},
{
"url":"arquivo2.pdf",
"descricao":"arquivo 2"
}
]}

我通过 Notepad++ 使用 UTF-8 编码 保存它。

然后我得到文件内容:

function getContent($name)
{
$content = file_get_contents("configs/" . $name . ".json");
$encoded = utf8_encode($content);
return json_decode($encoded);
}

json_decode返回null

如果我将 json 文件保存为 ANSI,那么它就可以工作。但我想将其保存为 UTF-8。

最佳答案

我怀疑初始文件已经是 UTF-8 格式或格式不正确。

NULL is returned if the json cannot be decoded or if the encoded data is deeper than the recursion limit.

编码错误

你可以检查你输入的内容是否已经是有效的 utf-8 了:

$is_valid_utf8 = mb_check_encoding($content, 'utf-8'));

如果是,请不要重新编码。

文档提供了更多信息:http://php.net/mb-check-encoding

Material list

或者 Notepad++ 设置了一个 BOM,这可能会混淆 json_decode

//Remove UTF-8 BOM if present, json_decode() does not like it.
if(substr($content, 0, 3) == pack("CCC", 0xEF, 0xBB, 0xBF)) {
$content = substr($content, 3);
}

参见 json_decode的文档。

关于php - json_encode 为 UTF-8 字符集返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9232109/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com