读取PHP或node.js中编码错误的JSON文件

时间:2014-07-08 22:57:07

标签: php json node.js unicode utf-8

我正在尝试解析http://www.spetnik.com/files/alerts.json - Chrome似乎做得很好,如果我使用wget下载它,我可以在VIM中查看它。但是,当尝试使用node.js或PHP解析它时,解析失败。我尝试过各种各样的东西,包括mb_convert_encoding,但没有任何工作。解析此JSON的最简单方法是什么?

1 个答案:

答案 0 :(得分:4)

尝试使用iconv()。我对mb_detect_encoding()mb_convert_encoding()没有好运,但iconv成功将字符编码转换为UTF-8(json_decode仅适用于UTF-8编码字符串)。< / p>

$json = file_get_contents('http://www.spetnik.com/files/alerts.json');
$json = iconv( 'UCS-2', "UTF-8", $json );

print_r( json_decode( $json ) );

Here我找到了如何检测编码的方法:

foreach( mb_list_encodings() as $chr ){
    print_r( $chr );
    print_r( mb_convert_encoding( $json, 'UTF-8', $chr ) ); 
}