How to use five digit long Unicode characters in JavaScript
ecmascript-harmony, javascript, unicode
Solution
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);
Problem
In JavaScript I can do this: ``` foo = "\u2669" // 1/4 note ``` But I can't do this ``` foo = "\u1D15D" // full note -five hex digits ``` It will be interpreted as "\u1D15" followed by "D" Are there any workarounds for this? UPDATE 2012-07-09: The proposal for ECMAScript Harmony now includes support for all Unicode characters.