E с акцентом не отображается правильно

На моей странице текст в верхней середине ( "Ce site Internet." ) содержит E с акцентами, которые на моем компьютере отображаются как вопросительные знаки.

Это несмотря на то, что у меня есть meta charset = "UTF-8" в моем заголовке, а файл PHP, содержащий текст, появляется как UTF-8 при открытии с помощью Notepad ++.

Что происходит дальше?

Ответ 1

Браузер отображает их, когда он не может понять числа, которые он читает. UTF-8 является самосинхронизацией. В отличие от других многобайтовых кодировок, вы всегда знаете, где находитесь с UTF-8. Если вы видите номер 192-247, вы знаете, что находитесь в начале многобайтовой последовательности. Если вы видите 128-191, вы знаете, что находитесь в середине одного. Нет никакой опасности пропустить первый номер и уничтожить остальную часть текста. Это означает, что в UTF-8 последовательность 191, за которой следует 224, никогда не будет происходить естественным образом, поэтому браузер не знает, что с ней делать, и вместо этого отображает.

В теге заголовка используйте следующее:

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

Смотрите: http://coding.smashingmagazine.com/2012/06/06/all-about-unicode-utf8-character-sets/

Ответ 2

Хотя вы анонсируете контент как UTF-8 в мета и HTTP-заголовках, это не UTF-8, который отправляется. Возможно, вам нужно будет проверить свои настройки PHP, что на самом деле выводит контент в правильной кодировке. http://php.net/manual/en/mbstring.configuration.php.

Ответ 3

Вы использовали коды ASCII/HTML для акцентированных символов? Если нет, вот список из них. Ищите "E sharp", и вы должны исправить код для этого персонажа (это & Eacute; (без пробела), я думаю). Сначала я подумал, что это семейство шрифтов, которое вы использовали, но я не думаю, что это связано с тем, что я отключил все стили в своем браузере, и они все еще появились как вопросительные знаки.

Ответ 4

Страница на самом деле не закодирована в UTF-8, она закодирована в Latin1. Вам нужно фактически сохранить файлы исходного кода в UTF-8 или иначе убедиться, что они выводятся в кодировке UTF-8. В настоящее время у вас есть разрыв между тем, что, по утверждению сайта, будет закодировано и чем оно фактически закодировано.