javascript - 将 unicode 数字数组读取为 unicode 字符串(在 javascript 中)

标签 javascript unicode

字母 ł(l 带尾部)在 Unicode 中表示为 U+0142,十六进制:xc5 x82,十进制:197 130。

我有一个 JavaScript 数组:

var b = [197, 130]; 

如何从中生成字符串ł

我试过this在 JSFiddle 上:

var s;
s = String.fromCharCode(b[0], b[1]);

但是s等于Å(A上面有东西)。
我还尝试了 fiddle 中的其他方法,但无法得到正确的结果。

最佳答案

hex: 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]) // "ł"

关于javascript - 将 unicode 数字数组读取为 unicode 字符串(在 javascript 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23514300/

相关文章:

unicode - WireShark - 我可以解码数据包中的 UTF-8 数据吗?

javascript - JsLint 'out of scope'错误

javascript - 有没有一种方法可以使用 Javascript 检测所有 Ancestor DOM 元素的调整大小/缩放?

python unichr 问题

string - 将 unicode 转换为“java”

unicode - ColdFusion cfmail 主题行中的特殊字符

javascript - jQuery 使用淡入淡出效果更改正文的背景 URL

javascript - 在输入字段下方显示日期选择器

javascript - nodejs 应用程序如何在特定时间可靠地执行任务?

vim - 将 unicode 代码点转换为字符的表达式