You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
25 lines
691 B
25 lines
691 B
var decodeMap = require("../maps/decode.json"); |
|
|
|
module.exports = decodeCodePoint; |
|
|
|
// modified version of https://github.com/mathiasbynens/he/blob/master/src/he.js#L94-L119 |
|
function decodeCodePoint(codePoint) { |
|
if ((codePoint >= 0xd800 && codePoint <= 0xdfff) || codePoint > 0x10ffff) { |
|
return "\uFFFD"; |
|
} |
|
|
|
if (codePoint in decodeMap) { |
|
codePoint = decodeMap[codePoint]; |
|
} |
|
|
|
var output = ""; |
|
|
|
if (codePoint > 0xffff) { |
|
codePoint -= 0x10000; |
|
output += String.fromCharCode(((codePoint >>> 10) & 0x3ff) | 0xd800); |
|
codePoint = 0xdc00 | (codePoint & 0x3ff); |
|
} |
|
|
|
output += String.fromCharCode(codePoint); |
|
return output; |
|
}
|
|
|