LINUX.ORG.RU

[MySQL] продолжение следует... теперь кодировка

 


0

0

Вот сделал я базу, в которой charser UTF8.

Но вытащенные из ее таблиц значеиня отображаются на страничке (разумеется в браузере UTF8 поставлено) как годый ряд вопросительных знаков ("???????").

Как это так? :)


Смотря как вытаскивал, тут есть несколько вариантов, может быть такой что хотя у тебя charser UTF8 в базе, но данные туда неправильно (не в той кодировке) ипортированы, надо попробовать через mysqladmin посмотреть на данные в БД.

Если всё нормально, носкорее всего когда данные из базы вытасиваешь (например через php) указана не так кодировка данных. Надо смотреть в mysql настройки по умолчанию:

Например в конфиге: {mysqld] default-character-set=koi8_ru

Или проверить можно так: mysql> show variables like 'character_sets' ; mysql> show variables like 'character_set' ;

Если данные вытаскиваются неправильно, то можно попробовать в приложениее перед тем как выполнять SQL запросы с получением данны выполнить SET CHARACTER SET ..... (указать нужную кодировку);

ЗЫ А вообще google поможет, mysql + php + charset.

gloomdemon
()
Ответ на: комментарий от gloomdemon

Умгум, про charset я уже читал, потому и задал вопрос.
UTF8 проставлен всюду:

mysql> show variables like 'character_set%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

mysql> show variables like 'collation%';
+----------------------+-----------------+
| Variable_name | Value |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
+----------------------+-----------------+
3 rows in set (0.00 sec)

Вот, вроде как везде UTF8...

kuz
() автор топика
Ответ на: комментарий от kuz

Ага, понял.
Для потомства:
в php скриптах нужно использоваталь вот такую штуку:
mysql_query("set names 'utf8'");

kuz
() автор топика
Ответ на: комментарий от kuz

Ага, просто есть ещё такое дело как mysqlclient, вот он с поддержкой чего скомпилен так заьирается, т.е. если он скомпилен по умолчанию то используется latin1, вот и надо ручками выставлять, или же в конфиге MySQL в настройках соединения, там можно прописать какие команды вополнить при подключении.

gloomdemon
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.