javascript - 来自 charcodes 的 charcodes > 0xFFFF 的 javascript 中的 Unicode 字符

标签 javascript unicode astral-plane

我需要从 unicode 字符代码中获取字符串/字符,最后将其放入 DOM TextNode 中,以使用客户端 JavaScript 添加到 HTML 页面中。

目前,我在做:

String.fromCharCode(parseInt(charcode, 16));

其中 charcode 是包含字符代码的十六进制字符串,例如“1D400”。应该返回的unicode字符是𝐀,但是返回的是! 16 位范围内的字符 (0000 ... FFFF) 按预期返回。

有什么解释和/或改正建议吗?

提前致谢!

最佳答案

String.fromCharCode 只能处理 BMP 中的代码点(即最多 U+FFFF)。为了处理更高的代码点,这个函数来自 Mozilla Developer Network可用于返回代理对表示:

function fixedFromCharCode (codePt) {
    if (codePt > 0xFFFF) {
        codePt -= 0x10000;
        return String.fromCharCode(0xD800 + (codePt >> 10), 0xDC00 + (codePt & 0x3FF));
    } else {
        return String.fromCharCode(codePt);
    }
}

关于javascript - 来自 charcodes 的 charcodes > 0xFFFF 的 javascript 中的 Unicode 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5446492/

相关文章:

涉及星体平面的 unicode 范围的 Python 语义

javascript - 如何设置 Jade 中变量的链接文本?

javascript - 使用固定标题使 Bootstrap 表垂直和水平滚动

javascript - 如何将角色转出基本多语言平面?

java - Android、Foursquare 和 —特点

java - 平方根字符/符号

c# - C#中如何表示4个字节的字符

javascript - 如何使用 html 模式和脚本进行验证?

javascript - Google map Javascript API 查看位置

ios - 在 Swift 中将 unicode 标量表情符号转换为字符串