如何在JavaScript中使用五位长的Unicode字符 [英] How to use five digit long Unicode characters in JavaScript
本文介绍了如何在JavaScript中使用五位长的Unicode字符的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在JavaScript中我可以这样做:
In JavaScript I can do this:
foo = "\u2669" // 1/4 note
但我不能这样做
foo = "\u1D15D" // full note -five hex digits
它将被解释为\ u1D15后跟D
It will be interpreted as "\u1D15" followed by "D"
这有什么变通方法吗?
更新2012-07-09: ECMAScript Harmony的提案现在包括对所有Unicode字符的支持。
UPDATE 2012-07-09: The proposal for ECMAScript Harmony now includes support for all Unicode characters.
推荐答案
在 fromCharCode的MDN文档,他们注意到javascript只会自然地处理高达0xFFFF的字符。但是,他们还有一个针对fromCharCode的固定方法的实现,可以做你想要的(下面转载):
In the MDN documentation for fromCharCode, they note that javascript will only naturally handle characters up to 0xFFFF. However, they also have an implementation of a fixed method for fromCharCode that may do what you want (reproduced below):
function fixedFromCharCode (codePt) {
if (codePt > 0xFFFF) {
codePt -= 0x10000;
return String.fromCharCode(0xD800 + (codePt >> 10), 0xDC00 + (codePt & 0x3FF));
}
else {
return String.fromCharCode(codePt);
}
}
foo = fixedFromCharCode(0x1D15D);
这篇关于如何在JavaScript中使用五位长的Unicode字符的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文