Форум сайта python.su
Здравствуйте.
Задача запустить тестинг-сервер:
то есть выполняю команду:
#python2.5 manage.py testserver
но обработчик выдает ошибку
“
_mysql_exceptions.Warning: Incorrect string value: ‘\xD0\x9D\xD0\xBE\xD0\xB2…’ for column ‘name’ at row 1
”
Как я понимаю это связано с кодировками базы.
Вопрос: как задать кодировку utf8 для создаваемой тестовой базы?
конфигурационные файлы
settings.py:
DATABASE_OPTIONS = {"init_command": "SET CHARACTER SET utf8" }
+---------------------------------+-----------------------------+
| Variable_name | Value |
+---------------------------------+-----------------------------+
| auto_increment_increment | 1 |
| auto_increment_offset | 1 |
| automatic_sp_privileges | ON |
| back_log | 50 |
| basedir | /usr/ |
| binlog_cache_size | 32768 |
| bulk_insert_buffer_size | 8388608 |
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
| collation_connection | latin1_swedish_ci |
| collation_database | latin1_swedish_ci |
| collation_server | latin1_swedish_ci |
| completion_type | 0 |
| concurrent_insert | 1 |
| connect_timeout | 10 |
| datadir | /var/lib/mysql/ |
Офлайн
В документации http://docs.djangoproject.com/en/dev/ref/databases/#connecting-to-the-database нашел что в файле my.cnf в секции для выбора кодировки нужно написать:
default-character-set = utf8
но данная запись проблему не решила хотя изменила некоторые переменные mysql
#show variables
+---------------------------------+-----------------------------+
| Variable_name | Value |
+---------------------------------+-----------------------------+
| auto_increment_increment | 1 |
| auto_increment_offset | 1 |
| automatic_sp_privileges | ON |
| back_log | 50 |
| basedir | /usr/ |
| binlog_cache_size | 32768 |
| bulk_insert_buffer_size | 8388608 |
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
Офлайн
Оказалось все просто – TEST_DATABASE_CHARSET использовать надо. Ошибка ичезло.
Всем спасибо за внимание.
Офлайн