
Например, в инструментах разработчика я получаю что-то вроде:
Некоторые из этих квадратов находятся в конце строк. Сначала я думал, что это символы возврата каретки, но оказалось, что это не так.
Кроме того, квадраты появляются после =
или >
во многих местах, где нет символа новой строки, а просмотр файла в шестнадцатеричном редакторе показывает, что между =
и вообще нет никаких символов "
(например, id="
отображается как id=? "
).
Это также очень редко встречается на веб-страницах, например, я видел:
Я скопировал это предложение, посмотрел в шестнадцатеричном редакторе, и снова нет символа между e
и :
. В исходном коде тоже ничего не отображается.
Я никогда раньше такого не видел, и это произошло только после того, как я переустановил Arch несколько дней назад.
Chrome — это: Версия 19.0.1084.15 dev
Arch — это: Ядро 3.3.1-1-ARCH
,x86_64
locale.gen
имеет en_GB
раскомментированные локали ( UTF-8
и ISO-8859-1
). Кодировка в хроме по умолчанию ISO-8859-1
, но переключение на UTF-8
ничего не меняет.
Вот HTML-файл, который я использовал:тест.html
Было бы здорово получить исправление, объяснение было бы замечательно, подтверждение того, что это проблема только моей настройки (или нет), тоже было бы неплохо.
Редактировать: После исследования шрифтов я обнаружил, что в обоих случаях он пытался использовать arial, который в arch является частью пакета ttf-ms-fonts
. Установка этого привела к изменению шрифта, но квадраты остались (хотя и другой формы). В обоих случаях шрифт не соответствует шрифтам по умолчанию для системы.
решение1
Это решило проблему для меня. Установите шрифты dejavu.
sudo pacman -S ttf-dejavu
решение2
Есть лучший способ определить, какой шрифт вам не хватает, вместо того, чтобы вслепую устанавливать пакеты шрифтов.
Например, чтобы устранить проблему отсутствующих шрифтов, я сделал следующее:
- Я получил электронное письмо с двумя неизвестными символами Unicode (кодовые точки:
U+1F44B
,U+1F3FC
) - Вставьте их здесь:https://www.fontspace.com/unicode/analyzer#e=8J-Ri_Cfj7w
- Просмотрите результаты, которые покажут вам шрифты, содержащие эти эмодзи/символы.
- Установите только необходимые пакеты шрифтов, мне
pacman -S noto-fonts-emoji
это помогло. - Перестроить кэш шрифтов
fc-cache -vf
- Перезапустите Chrome/Chromium.
В качестве альтернативы вы можете поискать имя Unicode, чтобы облегчить поиск шрифтов в Google:
$ echo -e
решение3
Это стандартная процедура печатиЗаменяющий символ Unicodeвместо символа, которого нет в текущем шрифте.
Возможным решением является простое изменение шрифта по умолчанию либо вашей ОС (если браузер наследует настройки ОС), либо браузера. Например, мой Firefox 11.0 на Ubuntu 11.10 использует шрифт "serif" (который может быть синонимомFreeSerif), который, похоже, поддерживает множество символов Unicode.
PS: Кажется, изображения исчезли.
решение4
У меня была та же проблема. Эта страница, например, был особенно нечитаемым, с квадратами, появляющимися по всему тексту страницы. Я смог исправить это, переименовав все файлы arial*.ttf
в /usr/share/fonts/truetype/msttcorefonts
резервные имена файлов, а затем установив шрифт Chrome по умолчанию без засечек на Droid Sans. Я теперь вообще не могу использовать шрифты Arial, но, по крайней мере, страницы выглядят правильно.