Не удается отобразить символ js unicode `\ u1F310`

Например, символ омега отображается правильно '\u03A9', а символ земного шара '\u1F310' http://www.fileformat.info/info/unicode/char/1f310/index.htm — нет. Было опробовано в средах консоли и узла.


person AuthorProxy    schedule 17.05.2016    source источник
comment
Прочитайте это mathiasbynens.be/notes/javascript-unicode   -  person jcubic    schedule 17.05.2016


Ответы (2)


'\u1F310'

Эскейпы JavaScript \u принимают только четыре цифры, поэтому этот строковый литерал состоит из двух кодовых единиц: U+1F31 (строчная греческая буква с Dasia) и U+0030 (ноль цифр): ἱ0.

Строки JavaScript состоят из 16-битных кодовых единиц, поэтому самой старшей отдельной кодовой единицей в JavaScript является \uFFFF, а на символы от U+10000 и выше, лежащие за пределами базовой многоязычной плоскости, нельзя ссылаться напрямую. Чтобы получить их, вы должны использовать пару суррогатов UTF-16. Для U+1F310 это работает как '\uD83C\uDF10'.

В ECMAScript 2015 появилась новая форма экранирования строки, которая принимает номер символа и обрабатывает все остальное за вас: '\u{1F310}'. Это доступно в последних версиях Node, но пройдет некоторое время, прежде чем поддержка будет достаточно широко распространен в браузерах.

Печать персонажа на консоли — отдельная задача. Как говорит @MarcoS, вам нужно, чтобы ваш терминал был настроен на использование шрифта, для которого есть глиф. Вам также потребуется использовать консоль, которая понимает не-ASCII-символы и, в частности, символы не-Basic-Multilingual-Plane. (Если вы находитесь в командной строке Windows, единственный способ победить в этой игре — не играть.)

person bobince    schedule 17.05.2016
comment
Так что шрифты от ответа @MarcoS не имеют значения? - person AuthorProxy; 18.05.2016
comment
Вам, безусловно, потребуется установить шрифт с глифом для этого символа, если вы хотите просмотреть его на месте. (Если вы просто хотите вывести его для копирования и вставки в другом месте, вы можете сделать это без шрифта.) - person bobince; 21.05.2016

Только некоторые шрифты поддерживают символ земного шара '\u1F310'...
Вот некоторые из них:

  • Крайнее средство
  • Кивира
  • Пользовательский интерфейс Segoe Emoji
  • Символ пользовательского интерфейса Segoe
  • Символа
  • Унифонт Верхний ЦСУР

См. поддержку шрифтов.

person MarcoS    schedule 17.05.2016