3

Мой компьютер недавно отображал символы Юникода в порядке. Тем не мение; он недавно перестал их отображать, я могу успешно отображать символы в блокноте на другом компьютере, на котором установлена та же Win 7, но это x86 вместо x64. В обоих случаях используется один и тот же шрифт (arial). Переключение на шрифт, поддерживающий юникод, на компьютере x64 решает проблему. Какие-нибудь мысли?

음식

1 ответ1

1

Какие-нибудь мысли?

Шрифт блокнота

В Windows Notepad вы не можете (вообще) смешивать шрифты, вы можете выбрать только один шрифт за раз. Тем не менее, это утверждение должно быть квалифицировано для последних версий Windows.


Windows XP и более ранние

В Windows XP и более ранних версиях Блокнот не мог отображать символы, которых не было в выбранном шрифте. Следовательно, отсутствующий или неправильно отображаемый символ (обычно показывается как пустое поле) может быть вызван:

Использование Arial вместо Arial Unicode.
Arial - 778 552 байта, Arial Unicode - 23 275 812 байт. Разница в том, что огромное количество символов в Arial Unicode, но не в Arial. (эти размеры от Vista, а не XP, но разница будет аналогичной).

Опускание метки порядка байтов (BOM)
Windows ожидает, что файлы Unicode (UTF-8, UTF-16 LE и т.д.) Содержат спецификацию. Если нет, то Windows угадывает кодировку с помощью функции Windows API (isTextUnicode), которая, как известно, допускает ошибки, в результате чего вместо одного правильного символа отображается несколько символов Latin-1.


(Обновить)

Windows Vista и выше

Блокнот теперь принял стратегию, впервые увиденную в веб-браузерах - если символ не существует в текущем шрифте, найдите шрифт, который содержит этот символ, и, только для этого символа, используйте другой шрифт. Поэтому, если у вас есть разные дополнительные шрифты на одном компьютере, он может вести себя иначе, чем на других компьютерах (даже если ОС одинакова).

"Неправильный" Arial
Я не знаю используемый алгоритм, но кажется возможным, что если у вас поврежденный или намного меньший Arial Unicode, в котором отсутствуют некоторые символы, Блокнот может поверить, что шрифт содержит символ, которого нет. Шрифт Arial размером 3395 КБ - это не то, что я ожидал бы в Windows 7. Возможно, установка какого-либо приложения заменила шрифт по умолчанию тем, который каким-то образом неисправен?

Дополнительный "плохой" шрифт В качестве альтернативы Notepad может искать другой, недавно добавленный шрифт для отсутствующего символа, прежде чем смотреть на Arial Unicode. Если этот другой шрифт утверждает, что содержит символ, но не содержит (например, неправильные теги макета, Блокнот может не отображать символ


(обновление 2)

Предлагаемые действия

На компьютере с обычной Arial на 3 395 КБ скопируйте файл шрифта в безопасное место, удалите его, а затем установите файл обычного шрифта Arial на 761 КБ, скопированный с другого компьютера.

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