【问题标题】:Javascript literals for characters higher than U+FFFF高于 U+FFFF 的字符的 Javascript 文字
【发布时间】:2016-02-18 12:31:58
【问题描述】:

我的 javsacript 源代码是严格的 ascii,我想在字符串文字中表示 anger symbol。这在javascript中可能吗?

【问题讨论】:

  • 该页面上的 Java 源代码 恰好也适用于 Javascript...

标签: javascript unicode string-literals


【解决方案1】:

JavaScript 字符串实际上是 UTF-16,因此您可以使用 Unicode 转义符编写代理对:"\uD83D\uDCA2"(这是该页面上显示的 Java 源代码,它也适用于 JavaScript)。

从 ES2015 (ES6) 开始,您也可以将其写为 \u{1F4A2},而不是计算出代理对 (spec)。

例子:

使用\uD83D\uDCA2

document.body.innerHTML =
  "(Of course, this only works if the font has that character.)" +
  "<br>As \\uD83D\\uDCA2: \uD83D\uDCA2";

使用\u{1F4A2}(如果您的浏览器支持新的 ES2015 功能)

document.body.innerHTML =
  "(Of course, this only works if the font has that character.)" +
  "<br>As \\u{1F4A2}: \u{1F4A2}";

这是一个使用 U+1D44E (\uD835\uDC4E, \u{1D44E}) 的示例,它是数学中使用的程式化 a,它在我的 SO for me on Linux 上显示(而你的 :anger: 表情符号没有,但如果我使用 Windows 8.1):

使用\uD835\uDC4E

document.body.innerHTML =
  "(Of course, this only works if your browser has that symbol.)" +
  "<br>As \\uD835\\uDC4E: \uD835\uDC4E";

使用\u{1D44E}(如果您的浏览器支持新的 ES2015 功能)

document.body.innerHTML =
  "(Of course, this only works if your browser has that symbol.)" +
  "<br>As \\u{1D44E}: \u{1D44E}";

【讨论】:

    猜你喜欢
    • 2018-02-20
    • 1970-01-01
    • 1970-01-01
    • 2019-02-16
    • 1970-01-01
    • 2015-11-17
    • 1970-01-01
    • 2013-07-16
    • 2019-09-24
    相关资源
    最近更新 更多