Наборы символов, необходимые для правильного отображения "zalgo"

Наборы символов, необходимые для правильного отображения "zalgo"

Следующий ответ на Stack Overflow известен своим убедительным аргументом против использования регулярных выражений для анализа HTML:https://stackoverflow.com/a/1732454/505154

Содержание поста становится все более искаженным, и в конце должно быть что-то вроде этого:

zalgo правильно отображен

Однако на моем ноутбуке с Windows XP я вижу следующее:

залго заменен ящиками

Как сделать так, чтобы эти «символы» отображались правильно?

решение1

Самый простой способ — загрузить и установить достаточно большой шрифт, напримерСимволаи используйте Firefox или Chrome.

Проблема двоякая. Во-первых, текст содержит комбинированные диакритические знаки, которые не поддерживаются шрифтами, поставляемыми с Win XP. Есть несколько бесплатных шрифтов, которые можно использовать для исправления этой проблемы. Во-вторых, IE плохо отображает символы, когда ни один из перечисленных в применимом font-familyсписке шрифтов не покрывает символ в документе HTML. Chrome и Firefox справляются с этой задачей гораздо лучше; даже Firefox 3, который я тестировал в виртуальной системе Windows XP, похоже, справляется с ситуацией нормально: он подбирает недостающие символы из других шрифтов в системе.

В дополнение к страницам, которые играют с комбинированием диакритических знаков по-детски, есть реальные страницы, которые используют такие знаки. Так что хорошо быть готовым. Не существует единого шрифта, который охватывает все символы, поэтому просто устанавливайте дополнительные шрифты по мере необходимости; у Алана Вуда есть хорошая страница длязагрузка шрифтовс большим репертуаром персонажей.

решение2

Это больше, чем просто набор символов.

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

ядуматьосновной шрифт — Microsoft Sans Serif или Arial Unicode MS Regular, которые входят в стандартную комплектацию каждой версии Windows и дважды были значительно обновлены с момента своего первоначального выпуска для XP, вероятно, чтобы включить все диакритические знаки Unicode, которые вы видите здесь отсутствующими. Здесь могут быть задействованы и другие шрифты, используемые для заполнения пробелов в основном шрифте, если в нем отсутствует определенный диакритический знак. Я не уверен в юридических последствиях загрузки копии обновленных шрифтов без оплаты (без покупки Windows Vista или Windows 7 или Windows 8 для ноутбука)

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

Связанный контент