私たちのページで一部のドイツ語のウムラウトがスクランブルされているのはなぜだろうと思いました。その後、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 が述べたように、バックエンドについて説明する方が良いかもしれません: json 文字列は Template-Toolkit を使用して出力され、さらに使用するために javascript 変数に割り当てられます。正しいJavaScriptはこのようなものを示しています
{
"title" : "Geändert",
},
私が取得した新しいモジュールを使用して
{
"title" : "Geändert",
},
対象ページは 8859-1 (latin1) です。助言がありますか?