Dog*_*Dog 1 javascript unicode emoji
我们正在尝试使用 unicode 转义(以避免在源代码中包含 unicode)来制作一个国家/地区标志列表。我们使用字符来表示标志,以允许用户在纯文本内容中复制/粘贴标志,并避免传输图像文件和死链接的带宽。
如果我记得,在 Java 中,处理特殊字符时必须使用特殊的 unicode 转义序列。所以我认为在 JS 中也是如此。我查找了 Japan flag 的代码,并找到了这个序列:1f1ef 1f1f5(如本文档中所见,该文档从其他一些字符集转换为 unicode 序列)。所以我认为写字符串的方法是"\u1f1ef\u1f1f5",但返回"?f?5". 我错过了什么?
我知道这是一个老问题。不过,以下实现可能对未来的读者有用。解决方案在 ECMAScript 2015 中运行。
// Create flag from country code
function getCountryFlag(cc) {
// Mild sanity check.
if (cc.length !== 2)
return cc;
// Convert char to Regional Indicator Symbol Letter
function risl(chr) {
return String.fromCodePoint(0x1F1E6 - 65 + chr.toUpperCase().charCodeAt(0));
}
// Create RISL sequence from country code.
return risl(cc[0]) + risl(cc[1]);
}
// Test
document.write(getCountryFlag('jp'));Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1315 次 |
| 最近记录: |