Почему некоторые символы отображаются в Chrome в виде квадратов?

Почему некоторые символы отображаются в Chrome в виде квадратов?

Например, в инструментах разработчика я получаю что-то вроде:

Инструменты разработчика Chrome

Некоторые из этих квадратов находятся в конце строк. Сначала я думал, что это символы возврата каретки, но оказалось, что это не так.

Кроме того, квадраты появляются после =или >во многих местах, где нет символа новой строки, а просмотр файла в шестнадцатеричном редакторе показывает, что между =и вообще нет никаких символов "(например, id="отображается как id=? ").

Это также очень редко встречается на веб-страницах, например, я видел:

Результат поиска Google

Я скопировал это предложение, посмотрел в шестнадцатеричном редакторе, и снова нет символа между 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. Установка этого привела к изменению шрифта, но квадраты остались (хотя и другой формы). В обоих случаях шрифт не соответствует шрифтам по умолчанию для системы.

Инструменты разработчика Chrome - с Arial

решение1

Это решило проблему для меня. Установите шрифты dejavu.

sudo pacman -S ttf-dejavu

решение2

Есть лучший способ определить, какой шрифт вам не хватает, вместо того, чтобы вслепую устанавливать пакеты шрифтов.

Например, чтобы устранить проблему отсутствующих шрифтов, я сделал следующее:

  1. Я получил электронное письмо с двумя неизвестными символами Unicode (кодовые точки: U+1F44B, U+1F3FC)
  2. Вставьте их здесь:https://www.fontspace.com/unicode/analyzer#e=8J-Ri_Cfj7w
  3. Просмотрите результаты, которые покажут вам шрифты, содержащие эти эмодзи/символы.
  4. Установите только необходимые пакеты шрифтов, мне pacman -S noto-fonts-emojiэто помогло.
  5. Перестроить кэш шрифтовfc-cache -vf
  6. Перезапустите 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, но, по крайней мере, страницы выглядят правильно.

Связанный контент