Специальные символы не закодированы должным образом - PullRequest
2 голосов
/ 08 августа 2011

Выпуск:

Арабские / ивритские / нелатинские символы при извлечении из базы данных / движка динамического источника не отображаются должным образом, а отображаются как «??????» click to enlarge enter image description here

История (шаги отладки):

Всякий раз, когда пользователь что-то сохраняет (скажем, мета-ключевые слова, как показано выше) в базу данных, он обычно сохраняется с правильной кодировкой, но после сохранения символы отображаются неправильно, а вместо этого как «?????» из-за проблемы с кодировкой.

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

Сохранение ключевых слов напрямую через консоль MySQL или PHPMyAdmin приведет к тому же результату, поэтому проблема заключается в отображении символов, а не в их сохранении.

Получение ключевых слов вручную с помощью mysql_query + mysql_fetch_array решит проблему, поэтому проблема вызвана функцией, используемой для получения ключевых слов (или файлом, содержащим эту функцию).

Решение:

Можно найти Здесь

С наилучшими пожеланиями

Ответы [ 3 ]

1 голос
/ 08 августа 2011

Если вы используете MySQL, проверьте, установлены ли ваши таблицы, а также столбцы в utf8. Если вы создали всю структуру базы данных и впоследствии изменили кодировку базы данных на utf8, это не изменит кодирование существующих таблиц и столбцов. Он просто устанавливает кодировку по умолчанию для вновь создаваемых отношений.

0 голосов
/ 13 июня 2012

Решение:

Похоже, редактор использовал для сохранения файлов, так как в UTF8 была ошибка, и он не сохранял их в правильной кодировке.Переключение на Sublime Text 2 и сохранение всех файлов в формате UTF8 решило проблему.

С наилучшими пожеланиями

0 голосов
/ 08 августа 2011

Я заметил, что ваши страницы XHTML, не используйте htmlentities () (даже с правильной кодировкой) на страницах XHTML. Единственными символами, которые должны быть преобразованы в ссылки на сущности в документах XHTML (или XML), являются &, ", <,>

function xmlEntities( $s ) {
    return str_replace( array( '&', '"', '<', '>' ),
                    array( '&amp;', '&quot;', '&lt;', '&gt;' ), $s );
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...