Литералы Javascript для символов выше U+FFFF
Мой исходный код javsacript строго ascii, и я хочу представить символ гнева в строковом литерале. Это возможно в JavaScript?
1 ответ
Строки JavaScript по сути являются UTF-16, поэтому вы можете написать суррогатную пару, используя экранирование Unicode: "\uD83D\uDCA2"
(это то, что показано на этой странице для исходного кода Java, который также работает в JavaScript).
Начиная с ES2015 (ES6), вы также можете записать его как \u{1F4A2}
вместо того, чтобы разрабатывать суррогатные пары ( спец.).
Пример:
С помощью \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}
), стилизованный в математике, который показан здесь на SO для меня на 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}";