Отображение символов Юникода в HTML



Я хочу просто отобразить ТИК ( ✔ ) и перекрестные ( ✘ ) символы на HTML - странице, но он отображается как поле или goop â â" - очевидно, что-то связанное с кодировкой.



Я установил метатег, чтобы показать utf-8, но, очевидно, я что-то упускаю.



<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />


Редактировать/Решение: из комментариев, сделанных с помощью FireBug, я обнаружил, что заголовки, передаваемые моей страницей, на самом деле были "Content-Type: text/html", а не UTF-8. Глядя на формат файла с помощью Notepad++ показал, что мой файл был отформатирован как "UTF-8 без спецификации". Изменение этого на просто UTF-8 символы теперь отображаются правильно... но firebug по-прежнему, похоже, указывает на тот же тип контента.

774   5  

5 ответов:

вы должны убедиться, что заголовки HTTP-сервера верны.

в частности, заголовок:

Content-Type: text/html; charset=utf-8

должны присутствовать.

метатег игнорируется браузерами, если присутствует заголовок HTTP.

также убедитесь, что ваш файл на самом деле закодирован как UTF-8 перед его обслуживанием, проверьте/попробуйте следующее:

  • убедитесь, что ваш редактор сохранить его как UTF-8.
  • убедитесь, что ваш FTP или любая программа передачи файлов не беспорядок с этим файлом.
  • попробуйте с HTML-кодированных объектов, как &#uuu;.
  • чтобы быть действительно уверены, создать шестнадцатеричное представление файла и посмотрите, как персонаж, в книгах, следует Е2 9С 94 .

Примечание: Если вы используете символ Юникода, для которого ваша система не может найти глиф (без шрифта с этим символом), Ваш браузер должен отображать знак вопроса или какой-либо блок, подобный символу. Но если вы видите несколько римских символов, как вы делаете, это означает кодировку проблема.

Я знаю, что ответ уже принят, но хотел бы отметить несколько вещей.

задание content-type и charset очевидно, что это хорошая практика, делать это на сервере намного лучше, потому что это обеспечивает согласованность в вашем приложении.

однако, я бы использовал UTF-8 только когда язык моего приложения использует много символов, которые доступны только в UTF-8 кодировка. Если вы хотите показать символ Юникода или символ в одном из случаях, вы можете сделать это без изменения charset вашей страницы.

HTML визуализаторы всегда были в состоянии отображать символы, которые не являются частью кодировки набора символов страницы, пока вы упоминаете символ в его numeric character reference (NCR). Звучит странно, но это правда.

так что, даже если ваш html имеет заголовок, который утверждает, что он имеет кодировку ansi или каких-либо iso charsets, вы можете отобразить флажок, используя его ссылку на символ html, в десятичном формате - ✓ или в hex - ✓

так его немного трудно понять, почему вы столкнулись с этой проблемой на ваших страницах. Можете ли вы проверить, правильно ли значение NCR, это хорошая ссылка http://www.fileformat.info/info/unicode/char/2713/index.htm

убедитесь, что вы действительно сохраняете файл как UTF-8, в качестве альтернативы используйте HTML-объекты (&#nnn;) для специальных символов.

В отличие от предложенного Николя,meta тег на самом деле не игнорируется браузерами. Тем не менее,Content-Type HTTP-заголовок всегда имеет приоритет над наличием meta тег в документе.

поэтому убедитесь, что вы либо отправляете правильную кодировку через HTTP-заголовок, либо вообще не отправляете этот HTTP-заголовок (не рекомендуется). Элемент meta тег в основном является резервным вариантом для локальных документов, которые не отправляются через HTTP-трафик.

использование HTML-объектов должно также следует рассматривать обходной путь-это на цыпочках вокруг реальной проблемы. Настройка веб-сервера должным образом предотвращает много неприятностей.

Я думаю, что это проблема с файлом, вы просто сохранили свой файл в 1-байтовой кодировке, такой как latin-1. Google до вашего редактора и как установить файлы в utf-8.

интересно, почему есть редакторы, которые не используют по умолчанию utf-8.

Comments

    Ничего не найдено.