我试图在php中解析这个json文件:http://www.oref.org.il/WarningMessages/alerts.json
此文件包含导致编码问题的希伯来字母。
我的剧本:
$content = file_get_contents('http://www.oref.org.il/WarningMessages/alerts.json');
$json = json_decode($content);
echo $json->id;
它只是不会显示任何内容。我只是得到一个空白页面。但如果我echo $content;
,它会完美地显示json文件。
Json文件示例:
{
"id" : "1434292591050",
"title" : "פיקוד העורף התרעה באזור ",
"data" : []
}
我一直在阅读其他一些类似的问题和解决方案,但没有一个能帮助解决这个问题。我一直试图使用mb_detect_encoding
和iconv
,但它没有帮助。
谢谢!
答案 0 :(得分:1)
您可以尝试以下iconv
:
$content = iconv('utf-16', 'utf-8', $content);
然后json_decode
正常工作并返回:
stdClass Object
(
[id] => 1434292591050
[title] => פיקוד העורף התרעה באזור
[data] => Array
(
)
)
答案 1 :(得分:1)
您获得的文件内容是UTF-16字符集。你必须转换它:
$content = file_get_contents('http://www.oref.org.il/WarningMessages/alerts.json');
$content=iconv("UTF-16", "UTF-8", $content);
$json = json_decode($content,true);
print_r($json);