将unicode数字数组读取为unicode字符串(在javascript中)
字母将unicode数字数组读取为unicode字符串(在javascript中),javascript,unicode,Javascript,Unicode,字母ł(带尾的l)在Unicode中表示为U+0142,十六进制:xc5 x82,十进制:197 130 我有一个JavaScript数组: var b = [197, 130]; 如何从中生成字符串ł 我在JSFIDLE上试过: var s; s = String.fromCharCode(b[0], b[1]); 但是s等于Å(A上面有个东西)我也尝试了小提琴中的其他方法,但无法得到正确的结果。对于两字节序列,您需要使用掩码,掩码指: var bytes = [0xc5, 0x82];
ł
(带尾的l)在Unicode中表示为U+0142,十六进制:xc5 x82,十进制:197 130
我有一个JavaScript数组:
var b = [197, 130];
如何从中生成字符串ł
我在JSFIDLE上试过:
var s;
s = String.fromCharCode(b[0], b[1]);
但是
s
等于Å
(A上面有个东西)我也尝试了小提琴中的其他方法,但无法得到正确的结果。对于两字节序列,您需要使用掩码,掩码指:
var bytes = [0xc5, 0x82]; // [197, 130]
String.fromCharCode(((bytes[0] & 0x1f) << 6) | (bytes[1] & 0x3f)); // "ł"
var bytes=[0xc5,0x82];//[197, 130]
String.fromCharCode((字节[0]&0x1f)
十六进制:xc5 x82
这是ł
的UTF-8字节编码
s=String.fromCharCode(b[0],b[1])
这就是将每个字节解释为单个字符,使用ISO-8859-1编码有效地对字节进行解码,因为这种编码恰好与Unicode的前256个字符共享相同的数字
有一种巧妙的JavaScript技巧可以将每个字符代表相同数字字节的字符串转换为UTF-8解码字符串:通过传统的escape()
内置函数发送,该函数是一个损坏的URL编码器,然后使用真正的URL解码器decodeURIComponent
对其进行解码
因此,对于任何UTF-8字节数组,您可以通过执行以下操作获得解码的Unicode字符串:
function utf8BytesToString(b) {
return decodeURIComponent(escape(String.fromCharCode.apply(null, b)));
}
utf8BytesToString([0xc5, 0x82]) // "ł"