У меня возникла проблема с отображением
на моей веб-странице после использования 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" />
Я просто заметил, что все другие специальные символы, такие как ®, ™ и т. Д., Также не работают.
Убедитесь, что вы указали кодировку UTF-8 в теге документа HTML:
<meta content="text/html; charset=UTF-8" http-equiv="content-type" />
Это странно, так как utf8_encode(' ')===' '
, Независимо от того, является ли это utf8 или latin1 закодированным байтовой последовательностью для
та же.
Является ли оставшаяся строка правильно закодированной utf8?
edit: Почему вы используете utf8_decode () (преобразование строк, закодированных utf8 в latin1), в первую очередь, когда вы сообщаете браузеру, что ваша страница закодирована в utf8?
Вы проверили кодировку самого файла php?
В некоторых редакторах Windows (например, блокнот ++) вы можете иметь некоторые проблемы с символами utf-8, когда вы проверяете неправильную кодировку для своего файла, даже если вы правильно установили свой метатег.
В блокноте ++ вы можете изменить его в этом разделе:
Изменить кодировку файла блокнота ++ http://img198.imageshack.us/img198/9081/notepadp.png
Если вы не используете notepad ++, нам понадобится более подробная информация из вашей установки, например, используемая операционная система, IDE и т. Д.
Также убедитесь, что вы даете документу надлежащее определение dtd, помещая что-то вроде этого:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
Как первая строка html в вашем php-файле.
Когда вы используете utf8_decode
, строку, которая передается этой функции, откуда она загружается? Вы загружаете данные из базы данных? У вас есть какие-либо файлы? Если да, убедитесь, что все они закодированы, как писал GmonC. Попробуйте echo
где-нибудь на странице и посмотреть, будет ли он отображаться правильно. Если нет, попробуйте сделать чистый .php-файл и проверьте, не устранена ли проблема. Если не какой-то включенный файл может быть проблемой, потому что он может иметь различную кодировку