MySQL проблемы с кодировкой - PullRequest
0 голосов
/ 10 ноября 2009

Я имею дело с некоторыми внешними API, и когда я сохраняю в db, я получаю некоторые ошибки кодирования. Весь контент, с которым я имею дело, находится в Unicode; но кодировка mysql установлена ​​по-латински.

Кажется, что работает нормально на моей локальной системе, но выдает ошибку на сервере. Единственное различие между средами состоит в том, что локальная версия запускает python2.6, а удаленный сервер - python2.5

.

Ниже приведены спецификации mysql:

mysql> SHOW VARIABLES LIKE "character\_set\_database";
+------------------------+--------+
| Variable_name          | Value  |
+------------------------+--------+
| character_set_database | latin1 | 
+------------------------+--------+
1 row in set (0.00 sec)

mysql> SHOW VARIABLES LIKE 'character\_set\_%';
+--------------------------+--------+
| Variable_name            | Value  |
+--------------------------+--------+
| 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   | 
+--------------------------+--------+
7 rows in set (0.00 sec)

И вот ошибка, с которой я сталкиваюсь:

Incorrect string value: '\xCB\x8Cs&ae...' for column 'content' at row 1

Какие изменения в настройках mysql я должен сделать, чтобы больше не заниматься проблемами кодирования.

Ответы [ 2 ]

1 голос
/ 10 ноября 2009

Этот пост поможет мне разобраться в моих настройках при использовании MySQL с Django.

1 голос
/ 10 ноября 2009

Во-первых, любимая мозоль: ваши исходные данные не могут быть в Unicode, потому что Unicode не является кодировкой. Скорее всего это в utf-8.

Вы не показываете код, который генерирует ошибку, или полный возврат, поэтому довольно сложно догадаться, что происходит. Но одна вещь, которую стоит попробовать, это установить для набора символов базы данных также utf-8 и посмотреть, поможет ли это.

...