0

私は次のUnicodeシーケンスを持っています:

          d76cb9dd0020b370b2c8c758

上記のUnicode行のオリジナルとして、英語以外の文字でランダムに試しました(この実験では、韓国語の言語を試しました)。

          희망 데니의

上記のUnicodeシーケンスを元の形式にデコードするにはどうすればよいですか?

4

2 に答える 2

4

JavaScript文字列リテラルとして、16進コードを次のようにエスケープします\u

var koreanString = "\ud76c\ub9dd\u0020\ub370\ub2c8\uc758";

または、文字列に韓国語の文字を入力するだけです。

var koreanString = "희망 데니의";

Unicode文字を表す16進文字列を処理するには、16進文字列を数値に解析し、Unicode文字列を作成しますString.fromCharCode()

var hex = "d76cb9dd0020b370b2c8c758";
var koreanString = "";
for (var i = 0; i < hex.length; i += 4) {
    koreanString += String.fromCharCode(parseInt(hex.substring(i, 4), 16));
}

編集:lengthプロパティにアクセスすることで、任意の文字列の長さを取得できます。

var stringLength = koreanString.length;

これはを返し6ます。「英語」の文字列はありません。16進数を表す文字列があり、16進数はラテン文字セットの文字で構成されていますが、これらは口頭言語ではありません。それらは単なる数字です。もちろん、プロパティを使用して16進文字列の長さを取得することはできますが、lengthなぜそれを実行するのかわかりません。文字列の代わりに数値の配列を使用する方が簡単です。

var charCodes = [0xd76c, 0xb9dd, 0x0020, 0xb370, 0xb2c8, 0xc758];
var koreanString = String.fromCharCode.apply(null, charCodes);

このように、charCodes.lengthはと同じになりますkoreanString.length

于 2013-01-22T00:04:00.403 に答える
3

どうですか

var str = 'd76cb9dd0020b370b2c8c758';
str = '"'+str.replace(/([0-9a-z]{4})/g, '\\u$1')+'"';
alert(JSON.parse(str));

デモ

于 2013-01-21T23:55:35.610 に答える