我想解析一個用Perl編寫的utf-8 json文件。 https://jsonlint.com/表示json有效。 不過我得到的錯誤消息:用Perl解析utf-8 json文件
畸形JSON字符串,既不標籤,數組,對象,數字,字符串或原子,在字符偏移0(前「\ X {EF} \ X {BB} \ X在parse.pl線{BF} { 「...」)15.
的代碼是:
use strict;
use utf8;
use JSON qw();
my $filename = 'k2.json';
my $json_text = do {
open(my $json_fh, $filename) or die("Can't open $filename: $!\n");
local $/;
<$json_fh>
};
my $json = JSON->new;
my $data = $json->decode($json_text);
for (@{$data->{data}}) {
print $_->{lng}."\n";
}
的UTF-8編碼的JSON是:
{"data":
[{"lng":"19.03252602",
"lat":"47.49795914",
"display_name":"I. kerület (Attila út)",
"active":"1",
"url":"/hu/kormanyablakok/budapest/i-kerulet/i-kerulet-attila-ut/283"
}]
}
我看到(ef,bb,bf)是三個字節,表明它是一個utf-8文檔,所以我不明白在這裏丟失了什麼JSON包。我怎樣才能使它工作?
指定「<:編碼(UTF-8)」在打開文件並沒有幫助...
另請參閱[File :: BOM](https://metacpan.org/pod/File::BOM)。 –