Показать сообщение отдельно
  #15 (permalink)  
Старый 11.10.2019, 18:36
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Сообщение от j0hnik
с древнеегипетским????
Каждый египетский иероглиф занимает одну кодовую точку, также как это делают буквы русского алфавита в нормализованном (это касается букв Ё и Й) виде. Где вы вообще увидели проблему?

Речь идёт о составных символах, например, флаги, расы (негритянки, мулаты, белые и пр.), хангыль (чамо), причёски, буквы с диакритикой, профессии и пр., которые состоят из нескольких кодовых точек.

Например, рассмотрим флаг России 🇷🇺. Он состоит из двух региональных индикаторов (🇷 и 🇺 ), однако когда эти индикаторы стоят рядом, то они означают один флаг, соответственно только одну графему!

<style>
  @font-face {
    font-family: "Flags";
    src: url("https://cdn.glitch.com/348d485e-4ba6-4841-a41e-5865874b2d66%2FBabelStoneFlags.ttf");
    unicode-range: U+1F1E6-FF;
  }

  html {
    font: 300% "Flags";
    background: #ddd;
  }
</style>

&#127479; + &#127482; = &#127479;&#127482;


Это означает, что при разбиении текста нельзя делить флаги, поскольку тогда в бегущей строке возникнет момент, когда в конце строки окажется только один региональный индикатор, и флаг поломается!

Не говоря уже о ситуации, когда вы каждую кодовую точку оборачиваете в <span>, тем самым ломая текст! Нужно оборачивать каждую графему в <span>, тогда всё будет в порядке!

На самом деле это проблема в JavaScript, в котором нет способа перечислять графемы в строке. Или я что-то пропустил?

Последний раз редактировалось Malleys, 11.10.2019 в 18:39.
Ответить с цитированием