mysql编码问题

时间:2009-11-10 14:48:33

标签: mysql django unicode encoding character-encoding

我正在处理一些外部API,当我保存到数据库时,我收到一些编码错误,我正在处理的所有内容都是unicode;但是mysql编码设置为ti latin1。

它似乎在我的本地系统上正常工作,但在服务器上抛出错误。环境之间的唯一区别是本地运行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 个答案:

答案 0 :(得分:1)

首先,一个小小的问题:您的源数据不能是unicode,因为unicode不是编码。最有可能是在utf-8中。

您没有显示产生错误的代码或完整的回溯,因此有点难以猜测发生了什么。但是要尝试的一件事就是将数据库字符集设置为utf-8,看看是否有帮助。

答案 1 :(得分:1)

This post帮助我在使用MySQL和Django时直接设置。