私は次のUnicodeシーケンスを持っています:
d76cb9dd0020b370b2c8c758
上記のUnicode行のオリジナルとして、英語以外の文字でランダムに試しました(この実験では、韓国語の言語を試しました)。
희망 데니의
上記のUnicodeシーケンスを元の形式にデコードするにはどうすればよいですか?
私は次のUnicodeシーケンスを持っています:
d76cb9dd0020b370b2c8c758
上記のUnicode行のオリジナルとして、英語以外の文字でランダムに試しました(この実験では、韓国語の言語を試しました)。
희망 데니의
上記のUnicodeシーケンスを元の形式にデコードするにはどうすればよいですか?
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
。
どうですか
var str = 'd76cb9dd0020b370b2c8c758';
str = '"'+str.replace(/([0-9a-z]{4})/g, '\\u$1')+'"';
alert(JSON.parse(str));