Почему печатаемые символы Юникода меняются? - PullRequest
2 голосов
/ 20 мая 2019

Способ отображения символа Юникода зависит от того, использую ли я Белую тяжелую галочку или Отрицательный квадратный крестик перед ним или нет. Если я это сделаю, предупреждающий знак будет цветным. Если я поставлю пробел между символами, я получу одноцветную текстовую версию.

Почему существует такое поведение, и могу ли я каким-то образом заставить цветной символ?

Я пробовал пару разных REPL, поведение было одинаковым.

; No colour
(str (char 0x274e) " " (char 0x26A0))
; Coloured
(str (char 0x274e) "" (char 0x26A0))

Clojure Unicode Display .

Я ожидаю, что символ будет отображаться одинаково независимо от того, какой символ стоит перед ним.

Ответы [ 2 ]

1 голос
/ 20 мая 2019

Юникод - это символы (кодовые точки), а не глифы (см. «Изображение» символа).

Шрифты могут (и должны) объединять близлежащие символы в один глиф. В печатных латинских сценариях это не очень распространено (но мы могли бы иметь его, например, ff, fi, ffi), без учета комбинирования кодовых точек , которые, по определению, должны объединяться с другими символами, чтобы получить только один глиф

Многие другие скрипты требуют этого. Начинаю писать латиницей, но большинство сценариев требует изменений. Например. Арабский язык имеет различные символы начального, конечного, среднего или разделенного символа (+ специальная комбинация, общая для рукописных сценариев). Индийские сценарии имеют похожее поведение.

Таким образом, база Unicode уже имеет такое поведение, и современные хорошие шрифты должны быть в состоянии сделать это.

Еще не поздно, что эмоджи использует такую ​​функциональность, например, буквы / флаги стран в других распространенных случаях.

Зачастую документация Unicode сообщает вам о таких возможностях и специальных кодовых точках, которые могут изменить поведение, но тогда задача шрифта - выполнить ожидаемое поведение (и найти хорошие глифы).

Итак: символ (как кодовая точка Unicode) не один к одному для дизайна (глифы).

1 голос
/ 20 мая 2019

Почему существует такое поведение

Продавец подумал, что было бы неплохо сделать цвета эмодзи глифов. Идея завоевала популярность.

https://en.wikipedia.org/wiki/Emoji#Emoji_versus_text_presentation

могу ли я каким-то образом заставить цветной символ

ВАРИАЦИОННЫЙ ВЫБОР U + FE0E-15 и ВАРИАЦИОННЫЙ ВЫБОР U + FE0F-16

http://mts.io/2015/04/21/unicode-symbol-render-text-emoji/

...