Рендеринг умлаутов (åäö) в IE8 и IE9 с помощью Verdana - PullRequest
2 голосов
/ 09 марта 2012

На некоторых страницах возникают странные проблемы, которые иногда приводят к неправильному отображению умлаутов (åäö) в IE8 и IE9. Кодировка - utf-8 (в основном сайт работает, так что я знаю, что это правильно), и я попытался сузить классы css, и кажется, что это влияет только на Verdana. Пробовал разные компьютеры, а также.

Думаю, я мог быть связан с мета-X-UA-Compatible и изменить безуспешно на этот тег.

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

Вот как это должно выглядеть:

enter image description here

И это результат в IE8 и IE9

enter image description here

1 Ответ

1 голос
/ 13 сентября 2012

Проблема проявляется потому, что, хотя текст закодирован в допустимом UTF-8, используется декомпозированная форма нормализации Unicode, см. Эквивалентность Unicode .Похоже, что в Windows многие шрифты работают лучше всего, когда используются обычные предварительно составленные символы, а не последовательности базовых букв с объединением отдельно взятых диакритических знаков.

Например, давайте посмотрим на слово från сШестнадцатеричный редактор.

На вашем сайте он закодирован как 66 72 61 CC 8A 6E (то есть латинские строчные буквы f, r, a, затем U+030A кодовая точка, представляющая объединяющее кольцо выше , затем n).

Но в Windows обычная кодировка будет 66 72 C3 A5 6E (т. е. латинскими строчными буквами f, r, å, n).Таким образом, буква å обычно представляется одной кодовой точкой U+00E5 (а не последовательностью U+0061, U+030A).

Если вы используете PHP, попробуйте нормализовать текст с помощью нормализатора сначала класс (просто убедитесь, что установлено расширение intl).

...