3

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

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

залго правильно отрендерено

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

заменено залго на коробки

Как я могу заставить эти "символы" отображаться правильно?

2 ответа2

6

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

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

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

3

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

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .