& NBSP; не отображается должным образом

У меня возникла проблема с отображением   на моей веб-странице после использования 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('&nbsp;')==='&nbsp;' , Независимо от того, является ли это utf8 или latin1 закодированным байтовой последовательностью для &nbsp; та же.
Является ли оставшаяся строка правильно закодированной 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 &nbsp; где-нибудь на странице и посмотреть, будет ли он отображаться правильно. Если нет, попробуйте сделать чистый .php-файл и проверьте, не устранена ли проблема. Если не какой-то включенный файл может быть проблемой, потому что он может иметь различную кодировку