не отображается должным образом - PullRequest
2 голосов
/ 22 октября 2009

У меня проблема с отображением   на моей веб-странице, после использования utf8_decode () в PHP он отображается как .

я использовал

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

Я только что заметил, что все другие специальные символы, такие как ®, ™ и т. Д., Также не работают.

Ответы [ 5 ]

5 голосов
/ 22 октября 2009

Убедитесь, что вы указали кодировку UTF-8 в теге HTML-документа:

  <meta content="text/html; charset=UTF-8" http-equiv="content-type" />
1 голос
/ 23 октября 2009

Вы проверили кодировку самого файла php?

В некоторых редакторах Windows (таких как notepad ++) могут возникнуть проблемы с символами utf-8, когда вы проверяете неправильную кодировку для вашего файла - даже если вы правильно установили метатег.

В блокноте ++ вы можете изменить его в этом разделе:

Изменить кодировку файла notepad ++ http://img198.imageshack.us/img198/9081/notepadp.png

Если вы не используете notepad ++, нам потребуется более подробная информация из вашей настройки, например, используемая операционная система, IDE и т. Д.

1 голос
/ 22 октября 2009

Странно, так как utf8_encode('&nbsp;')==='&nbsp;'. Независимо от того, закодирован ли он utf8 или latin1, последовательность байтов для &nbsp; одинакова.
Правильно ли закодирована оставшаяся строка utf8?

edit: Почему вы в первую очередь используете utf8_decode () (преобразует строки в кодировке utf8 в latin1), когда говорите браузеру, что ваша страница закодирована в utf8?

0 голосов
/ 23 октября 2009

Когда вы используете utf8_decode, строка, которая передается в эту функцию, откуда она загружается? Вы загружаете данные из базы данных? Есть ли у вас какие-либо включенные файлы? Если это так, убедитесь, что они все закодированы как написано в GmonC. Попробуйте повторить &nbsp; где-нибудь на странице и посмотрите, будет ли оно отображаться правильно. Если нет, попробуйте сделать чистый .php файл, а затем посмотреть, если проблема все еще возникает. Если нет, то проблема может быть связана с некоторым включенным файлом, потому что он может иметь другую кодировку

0 голосов
/ 23 октября 2009

Также убедитесь, что вы даете документу правильное определение dtd, поставив что-то вроде этого:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

В качестве первой строки html в вашем файле php.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...