2013-09-26 4 views
0

У меня есть страница, которая содержит некоторые HTML-закодированные символы Unicode: ▲ (▲), ▼ (▼), ◄ (◄), ► (►) и ✓ (✓). Некоторые пользователи жалуются на то, что некоторые из них не отображаются в браузере.HTML - Отсутствующие символы Unicode

Каков наилучший способ решить эту проблему без установки шрифтов на машинах пользователей? Нужно ли делать растровые изображения для каждого символа Юникода? Если да, есть ли инструмент для преобразования символов в растровые изображения? Или есть лучший способ?

+0

Это может быть полезно http://stackoverflow.com/questions/1696619/displaying-unicode-symbols-in-html –

ответ

3

Как это прежде всего проблема с шрифтом, альтернативы - использовать загружаемый шрифт, также известный как веб-шрифт, через @font-face и использовать изображения вместо символов. Я написал «в первую очередь», потому что есть дополнительная трудность: некоторые браузеры не будут отображать некоторые символы, если они не могут быть найдены в шрифтах, перечисленных в соответствующем списке font-family. Об общих соображениях по этим вопросам см. Мой Guide to using special characters in HTML.

В этом специальном случае символ «✓» может вызвать проблемы, поскольку он присутствует в относительно небольшом числе шрифтов. В большинстве случаев я ожидал, что остальные будут в порядке, но мое ожидание было неправильным: Android (2.x) показывает ▲ и ▼ ОК, но не ◄ и ►.

Использование загружаемого шрифта для получения отображаемых символов может быть излишним, поэтому лучше всего использовать изображения. Вы можете просто написать символ в какой-либо программе, используя подходящий шрифт большого размера, взять снимки экрана каждого и сохранить их как изображения. Затем вы будете использовать их через теги img, устанавливая высоту изображений на подходящую высоту в CSS, используя блок em. Причина в том, что таким образом они будут хорошо выглядеть в разных размерах шрифтов - приспосабливаясь к размеру шрифта, а масштабирование вниз имеет тенденцию давать лучшие результаты, чем масштабирование вверх.

Если вы придерживаетесь этого пути, тогда лучше всего представлять все изображения в формате ▲, ▼, ◄, ►, чтобы сделать их стилистически подходящими.

+0

Спасибо! Я закончил использовать изображения. Я нашел полезный инструмент: http://www.fileformat.info/info/unicode/char/search.htm Я просто вводил код символа, и я получаю каждую информацию, включая ** генерируемый сервером образ персонаж**! – kol

-2

Просто используйте UTF-8 для кодирования ваших страниц, и в случае отсутствия некоторых шрифтов эти символы используют Arial, потому что они содержат их все.

+1

Использование UTF-8 - хорошая идея, но здесь здесь неактуальны. Arial недоступен во всех системах (например, андроиды его не имеют), и он существует в разных версиях. Никакая версия Arial не содержит «✓». –

+0

Arial Unicode MS делает, но это не Arial, а также еще худший выбор для шрифта. – Joey

+0

@Joey, основная проблема с Arial Unicode MS (относительно использования на веб-страницах) заключается в том, что она далеко не универсальна. Он обычно доступен только на компьютерах, на которых установлен Microsoft Office. В противном случае было бы в основном использовать его для визуализации отдельных специальных символов. –

Смежные вопросы