>htmlentities.decode('𝌆')// U+1D306 TETRAGRAM FOR CENTRE'\uD306'// should be `\uD834\uDF06` i.e. `𝌆`
E.g. © decodes just fine, but 𝌆 doesn’t because String.fromCharCode(0x1D306) doesn’t work for astral values (i.e. values > 0xFFFF). U+1D306 is an astral symbol. Details here: http://mathiasbynens.be/notes/javascript-encoding
// Instead of…String.fromCharCode(codePoint);// …which only works for values from 0x0000 to 0xFFFF, use this:punycode.ucs2.encode([codePoint]);// …which works for all Unicode code points (i.e. values from 0x000000 to 0x10FFFF)
(Note: Punycode.js is bundled with Node.js v0.6.2+ but you could always add it to package.json anyway if you want to support older versions).
See he’s he.decode() for a working example that doesn’t rely on Punycode.js.
The text was updated successfully, but these errors were encountered:
E.g.
©
decodes just fine, but𝌆
doesn’t becauseString.fromCharCode(0x1D306)
doesn’t work for astral values (i.e. values> 0xFFFF
). U+1D306 is an astral symbol. Details here: http://mathiasbynens.be/notes/javascript-encodingThis can easily be fixed by using the
Punycode
module:(Note: Punycode.js is bundled with Node.js v0.6.2+ but you could always add it to
package.json
anyway if you want to support older versions).See he’s
he.decode()
for a working example that doesn’t rely on Punycode.js.The text was updated successfully, but these errors were encountered: