我想知道为什么我们的页面上会出现一些德国变音符号。然后我发现最新版本的 JSON(我使用 2.07)确实以不同于 JSON 1.5 的方式转换字符串。
这里的问题是我有一个带有字符串的哈希,例如
use Data::Dumper;
my $test = {
'fields' => 'überrascht'
};
print Dumper(to_json($test));
给我
$VAR1 = "{ \"fields\" : \"\x{fc}berrascht\" } ";
使用旧模块
$json = JSON->new();
print Dumper ($json->to_json($test));
给了我(正确的结果)
$VAR1 = '{"fields":[{"title":"überrascht"}]}';
所以变音符号是使用新的 JSON 2 模块打乱的。
我需要什么才能让它们正确?
更新:使用 Data::Dumper 显示输出可能不好,因为 Dumper 使用自己的编码。好吧,与 Dumper 的结果不同,表明这里对任何事物都进行了不同的处理。正如 Brad 提到的那样描述后端可能会更好:使用 Template-Toolkit 打印 json 字符串,然后将其分配给 javascript 变量以供进一步使用。正确的 javascript 显示类似这样的内容
{
"title" : "Geändert",
},
使用我得到的新模块
{
"title" : "Geändert",
},
目标页面位于 8859-1 (latin1) 中。有什么建议么?