2009-10-22 3 views
1

У меня возникла проблема при отображении   на моей веб-странице, после использования 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" /> 

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

+0

Если это срочно, вы должны предоставить как можно больше информации: нам нужен исходный код и в идеале вывод скрипта на вашем веб-сервере быть в состоянии помочь вам наилучшим образом. – soulmerge

+0

Я заметил, что есть пустая строка в начале кода, может ли это вызвать проблему? –

+0

Вы действительно используете ссылку на символ ' '? – Gumbo

ответ

5

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

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

Я использую \t

1

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

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

+0

Я не знаю, что строка правильно закодирована в utf8 или нет, как я могу ее проверить? –

+0

Если mbstring moule включен, вы можете использовать mb_check_encoding() для проверки кодировки. http://docs.php.net/mb_check_encoding Но обратите внимание на мое редактирование. – VolkerK

0

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

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

В первой строке HTML в файле PHP.

+0

даже это не помогло, я просто изменил его, я заметил, что в начале кода есть пустая строка, может ли это вызвать проблему? –

1

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

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

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

Change notepad++ file encoding http://img198.imageshack.us/img198/9081/notepadp.png

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

0

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