美文网首页
ubuntu+python3+mysql环境下写入中文

ubuntu+python3+mysql环境下写入中文

作者: ghostdogss | 来源:发表于2019-06-04 16:15 被阅读0次

    出现错误1366-incorrect string value:\xE7\x8E\x8B for column fi

    原因分析:

    MySQL中默认字符集的设置有四级:服务器级,数据库级,表级 。最终是字段级 的字符集设置。注意前三种均为默认设置,并不代码你的字段最终会使用这个字符集设置。所以我们建议要用show create table table ; 或show full fields from tableName; 来检查当前表中字段的字符集设置。

    解决办法:

    可以从服务器级,数据库级,表级 修改编码方式:
    1)修改数据库字符集:
    ALTER DATABASE db_name DEFAULT CHARACTER SET character_name [COLLATE ...];

    2)把表默认的字符集和所有字符列(CHAR,VARCHAR,TEXT)改为新的字符集:
    ALTER TABLE tbl_name CONVERT TO CHARACTER SET character_name [COLLATE ...]
    如:ALTER TABLE logtest CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

    3)只是修改表的默认字符集:
    ALTER TABLE tbl_name DEFAULT CHARACTER SET character_name [COLLATE...];
    如:ALTER TABLE logtest DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

    4)修改字段的字符集:

    ALTER TABLE tbl_name CHANGE c_name c_name CHARACTER SET character_name [COLLATE ...];
    如:ALTER TABLE logtest CHANGE title title VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci;

    相关文章

      网友评论

          本文标题:ubuntu+python3+mysql环境下写入中文

          本文链接:https://www.haomeiwen.com/subject/ivcrxctx.html