4

重複の可能性:
エスケープされた Unicode を使用して文字列をデコードするにはどうすればよいですか?

私はユニコード文字を保存したjavascript変数を持っています。

var value = "\\u53d3\\u5f13\\";

余分なバックスラッシュ (\\u) の適切な Unicode 値が表示されないため、上記の値を div に動的に追加しています。しかし、 \\u ではなく \u である単一のバックスラッシュに変更すると。Unicode 記号が正しく表示されます。

私の環境では、単一のバックスラッシュで値を保存できません。応答はサーバー側からのものなので..

適切なユニコードを表示するために、二重のバックスラッシュを単一のバックスラッシュに置き換える方法はありますか?

前もって感謝します

4

1 に答える 1

5

それはもはやバックスラッシュではなく、文字列に文字通り含まれているものです。バックスラッシュを置き換えたばかりの場合は、最終的には。になり"u53d3u5f13"ます。ただし、簡単にエスケープを解除できます(\ uXXXXが置き換えられることを気にしない場合):

function unescapeUnicode( str ) {
    return str.replace( /\\u([a-fA-F0-9]{4})/g, function(g, m1) {
         return String.fromCharCode(parseInt(m1, 16));
    });
}

var value = "\\u53d3\\u5f13\\";
unescapeUnicode(value);
"叓弓\"
于 2013-01-17T14:59:56.697 に答える