Проблема проявляется потому, что, хотя текст закодирован в допустимом 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
).