我有以下 unicode 序列:
d76cb9dd0020b370b2c8c758
我随机尝试了非英文字符(对于这个实验,我尝试了韩语语言)作为上述 unicode 行的原件:
희망 데니의
如何将上述 unicode 序列解码为原始形式?
我有以下 unicode 序列:
d76cb9dd0020b370b2c8c758
我随机尝试了非英文字符(对于这个实验,我尝试了韩语语言)作为上述 unicode 行的原件:
희망 데니의
如何将上述 unicode 序列解码为原始形式?
作为 JavaScript 字符串文字,使用以下命令转义十六进制代码\u
:
var koreanString = "\ud76c\ub9dd\u0020\ub370\ub2c8\uc758";
或者直接在字符串中输入韩文字符:
var koreanString = "희망 데니의";
要处理表示 unicode 字符的十六进制字符串,请将十六进制字符串解析为数字并构建 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
。没有“英文”字符串。您有一个表示十六进制数字的字符串,而十六进制数字由拉丁字符集中的字符组成,但这些不是任何口语。它们只是数字。当然,您可以使用该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));