代码之家  ›  专栏  ›  技术社区  ›  lprsd

MySQL编码问题

  •  0
  • lprsd  · 技术社区  · 15 年前

    我正在处理一些外部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 回复  |  直到 15 年前
        1
  •  1
  •   Mark Lavin    15 年前

    This post 在Django中使用MySQL时,请帮助我直接获取设置。

        2
  •  1
  •   Daniel Roseman    15 年前

    首先,有点恼火:源数据不能是Unicode格式,因为Unicode不是一种编码。很可能是UTF-8。

    您没有显示生成错误的代码,或者完整的回溯,所以很难猜测到底发生了什么。但要尝试的一件事是将数据库字符集也设置为utf-8,看看这是否有帮助。