我正在抓取一个网站并从其 JSON 中收集信息。结果保存在哈希中。但是有些页面给了我“JSON 字符串中格式错误的 UTF-8 字符”错误。我注意到“cafe”中的最后一个字母会产生错误。我认为这是因为字符类型的混合。所以现在我正在寻找一种将所有类型的字符转换为 utf-8 的方法(希望有一种完美的方法)。我尝试了 utf8::all,它只是不起作用(也许我没有做对)。我是菜鸟。请帮忙,谢谢。
更新
好吧,在我阅读了由 brian d foy 发布的文章“知道字符串和 UTF-8 字符串之间的区别”之后。我用代码解决了这个问题:
use utf8;
use Encode qw(encode_utf8);
use JSON;
my $json_data = qq( { "cat" : "Büster" } );
$json_data = encode_utf8( $json_data );
my $perl_hash = decode_json( $json_data );
希望这对其他人有帮助。