В чем причина этих символов, когда я извлекаю контент из базы данных? - PullRequest
0 голосов
/ 08 марта 2012

Я вытаскиваю некоторый контент из своей базы данных, и когда я отображаю его, я получаю случайные символы, иногда разбросанные по всему контенту.Я вижу много где места были / есть.Я также получаю в некоторых местах.

Символы не отображаются при просмотре в phpMyAdmin.Как правильно закодировать контент?Это то, что я должен делать, прежде чем вставить содержимое, или это то, что я делаю, когда я показываю?

Ответы [ 3 ]

1 голос
/ 08 марта 2012

В каком наборе символов хранятся данные?

Например, если данные хранятся в формате UTF-8, то при отображении данных необходимо убедиться, что кодировка страницы также установлена ​​в UTF-8.

Если этохранится в некотором другом наборе символов, затем установите соответствующую кодировку страницы.

Вы можете сделать это, передав соответствующие заголовки:

Content-Type: text/html; charset=utf-8

или сообщив браузеру в вашем документе:

<META http-equiv="Content-Type" content="text/html; charset="utf-8">

И в HTML5:

<meta charset="utf-8" />
1 голос
/ 08 марта 2012

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

Пожалуйста, проверьте, что у вас под $ db ['default '] [' char_set '] и $ db [' default '] [' dbcollat ​​'] в вашем application / config / database.php и какую кодировку вы используете в вашем views / html.Если вы видите данные на PMA правильно, возможно, проблема в ваших представлениях.

Попробуйте использовать utf8_encode или utf8_decode при печати текста.

1 голос
/ 08 марта 2012

Это UTF-8, неправильно истолкованный как CP1252.Убедитесь, что все соответствующие заголовки на месте.

>>> print u'’'.encode('cp1252').decode('utf-8')
’
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...