我正在处理一些外部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设置,以便不再处理编码问题。
答案 0 :(得分:1)
首先,一个小小的问题:您的源数据不能是unicode,因为unicode不是编码。最有可能是在utf-8中。
您没有显示产生错误的代码或完整的回溯,因此有点难以猜测发生了什么。但是要尝试的一件事就是将数据库字符集设置为utf-8,看看是否有帮助。
答案 1 :(得分:1)
This post帮助我在使用MySQL和Django时直接设置。