Почему Chrome в Windows 7 не отображает определенные символы Unicode для меня?

21

Этот вопрос Apple содержит текст

что это за ключ? ⎋

Который выглядит так в Google Chrome:

введите описание изображения здесь

Почему этот символ Юникода или другие подобные ему не отображаются в Google Chrome на Windows 7?

Майкл Прайор
источник
Для меня это выглядит как коробка ... В любом случае, двойная публикация осуждается.
Soandos
3
@soandos о каком другом посте ты говоришь? Кроме того, это не должно быть коробкой. вот почему я задаю вопрос. Кто-то задал вопрос о askdifferent и набрал там символ юникода, но на моей установке Chrome я вижу стандартную рамку.
Майкл Прайор
3
Как и я ... Похоже, это не проблема с вашей установкой Chrome, это для всех цветов. ФФ признает это нормально. Chrome даже не может распознать его как символ Unicode (я не думаю).
Soandos
Интересно, что Chromium в Ubuntu прекрасно работает.
Кибби
@soandos У меня отлично работает с Google Chrome (12.0.742.112) на Ubuntu 11.04 (Natty).
Майк Спросс

Ответы:

20

Я предполагаю, что это проблема замены шрифта.

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

Я полагаю, что Firefox и Opera распознают, что запрашиваемый глиф является символом, который безопасно извлечь из другого шрифта, в то время как остальные браузеры консервативны и просто показывают глиф "Uh ... dunno".

Чарльз Миллер
источник
Я считаю, что Chrome и Safari используют Windows GDI для рендеринга текста в Windows. IE9 использует DirectWrite, который в этом случае выглядит так же, как GDI.
Крейг Уильямс
Интересно: вы получите тот же результат, если вставить его в адресную строку.
xpda
@xpda ты прав; персонаж работает в адресной строке и теле на Firefox, и не работает ни в одном месте в Chrome. Захватывающий.
Джефф Этвуд
5
Звучит правдоподобно: Chrome и Firefox используют Uniscribe для отображения текста в браузере, а Uniscribe просто возвращает код ошибки вызывающему приложению, когда определенный символ не может быть найден в текущем шрифте. Приложение должно решить, должен ли Uniscribe затем использовать резервный шрифт для поиска замены, или он должен просто отобразить глиф блока. Chrome - один из браузеров, который просто говорит: «Как бы то ни было, мне все равно. Коробка в порядке».
Майк Спросс
11

Интересный. Это не просто Chrome - вы можете спросить, почему ни один из следующих браузеров не может отобразить его в Windows 7:

введите описание изображения здесь

Сверху вниз:

  • Firefox (у)
  • IE9 (n)
  • Хром (н)
  • Опера (у)
  • Сафари (н)

Поэтому Firefox и Opera могут отображать этот символ Unicode в Windows 7, но другие браузеры не могут.

что это за ключ? ⎋

Джефф Этвуд
источник
Для чего стоит, этот ключ "ESC" в Mac OS X.
Мартин Маркончини
@jjn это частичный ответ, который обычно разрешается
Джефф Этвуд
Принято к сведению. (Комментарий отозван.)
jjnguy
Насколько похожи браузеры в
наши
2
Chrome 13.0.782.107/Linux: хорошо
Арно Ле Блан
6

Вопрос, задающий вопрос: «Почему этот символ Unicode [...] не отображается в Google Chrome в Windows 7?» это

Этот конкретный символ является просто кодовой точкой Unicode, которая является произвольным числом. Существует много кодовых точек Юникода, которые не имеют «официального» символа. Даже если у них есть символ, это не обязательно тот случай, когда ваш шрифт имеет символ для этой кодовой точки. Если вы выберете другой шрифт, у вас может получиться другой символ.

Я посмотрел на CSS для страницы, и он показывает отображение этого символа в Arial (плюс куча других шрифтов, которые не имеют значения). Windows поставляется с Arial, поэтому он всегда должен сначала выбрать этот шрифт. Похоже, Arial не есть символ для этого юникода элемента кода. Каждый раз, когда у вас нет глифа для кодовой точки, он вставляет некоторую форму поля, указывающего, что глифа нет (как указали другие).

Главный вопрос в том, что именно делает Firefox или другие браузеры там, где он работает в Windows. Я посмотрел на другие шрифты, перечисленные в CSS (я думал, что это может быть откат к следующему шрифту CSS), но у них также нет глифа для этой кодовой точки. Возможно, Firefox поставляется со своими собственными шрифтами.

Копаясь в firefox, я заметил некоторые шрифты для математических символов: C: \ Program Files (x86) \ Mozilla Firefox \ res \ fonts. Возможно, это то, откуда это исходит.

Крис Дейл
источник
3

Я знаю, что это немного старый вопрос, но для тех, кто только что занялся этим, у меня есть решение, которое сработало в 2013 году. Во-первых, вы должны подтвердить, что на вашем ПК с Windows 7 установлен шрифт, который может отображать шрифт:

http://www.fileformat.info/info/unicode/char/238b/index.htm

Предполагая, что по крайней мере один шрифт в списке локальных шрифтов отображает это:

http://www.fileformat.info/info/unicode/font/fontlist.htm?text=%E2%8E%8B+-+Unicode+Character+%27BROKEN+CIRCLE+WITH+NORTHWEST+ARROW%27+%28U%2B238B % 29

Если нет, то установите пару «поймать все» шрифты Unicode: Code2000 и Symbola

Если у вас есть шрифт, который будет отображать символ, вы можете попробовать тестовую страницу браузера:

http://www.fileformat.info/info/unicode/char/238b/browsertest.htm

Chrome 28.0.1500.95 (и, вероятно, все последние выпуски) выполняет замену шрифтов ... в основном.

По любой причине, даже если шрифты правильно отображают U + 1F3C1 , Chrome 28.0 не будет отображать этот символ Unicode: 🏁. Firefox работает прекрасно. Пойди разберись.

  • Дейв
ViperGeek
источник
Подстановка шрифтов над BMP еще сломана в Chrome для Windows , только : code.google.com/p/chromium/issues/detail?id=111382
Fizz
2

Согласно Абсолютному минимуму, каждый разработчик программного обеспечения должен абсолютно точно знать о юникоде и наборах символов (без извинений!) Джоэла Спольски : «Если нет эквивалента для кодовой точки Юникода, которую вы пытаетесь представить в кодировке, которую вы пытаетесь чтобы представить это, вы обычно получаете небольшой вопросительный знак: «или, если вы действительно хороший, коробка ».

Я запускаю Chromium 13.0.782.112 на Archlinux, и моя кодировка по умолчанию - en_US.UTF-8 - символ отлично отображается на первоначально связанной странице.

wulfgarpro
источник
2
это нормально, но я не думаю, что вопрос был о коробке, но почему некоторые браузеры могут отображать этот конкретный символ, а другие нет.
Джефф Этвуд
@Джефф Этвуд, согласился - во всяком случае, мой ответ предоставляет более убедительные доказательства типографского вопроса; читать здесь . Я не могу сказать вам шрифт по умолчанию, потому что я не перед моей машиной.
wulfgarpro
0

Фактический ответ: это потому, что в Chrome есть ошибка, которая препятствует отображению шрифтов Unicode в Windows 7 (и выше?).

Проблема здесь, со всеми кровавыми деталями: https://crbug.com/42984 (отметьте это, и, возможно, кто-то заметит это?)

Дополнительный анализ и возможный обходной путь можно найти здесь: http://gschoppe.com/uncategorized/fixing-unicode-support-in-google-chrome/ .

Noyo
источник
0

Firefox 45.0 на моей GNU / Linux LFS 7.9 не показывал упомянутый вопрос о глифе Unicode, а также не отображал другие глифы, такие как греческий и т. Д.

Однако после загрузки Symbolaшрифта отсюда и тогда:

~$ unzip Downloads/symbola.zip -d Downloads
~$ mv Downloads/Symbola/Symbola_hint.ttf .fonts
~$ fc-cache

Firefox теперь показывает соответствующий глиф, а также отображает другие глифы.

user3405291
источник