我需要从 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/