如何在JavaScript中使用五位长的Unicode字符 [英] How to use five digit long Unicode characters in JavaScript

查看:78
本文介绍了如何在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆