前言
被乱码问题整整折磨了一个星期,这期间百度了无数的 blog。之前我的解决方法是修改/etc 下的配置文件 my.cnf,发现依然乱码。最后在侯爷的帮助下终于解决了。主要问题出在数据库和表的字符集和排序规则上,接下来就把解决方法记录下来
第一步:打开 Navicat,连接 mysql
打开 navicat,点击文件,选择新建连接,选择 mysql,依次输入以下内容即可
第二步:修改对应数据库的字符集和排序规则
连接成功后,进入对应的数据库,比如笔者这边数据库名为good_movie
good_movie --> 右击 --> 数据库属性-->数据库属性弹出框,修改字符集和排序规则,具体如下图所示
第三步:修改具体表中字段的字符集和排序规则
选中表role-->右击-->设计表,然后修改字段name和auths的字符集和排序规则,字符集选择utf8--UTF-8-Unicode,排序规则选择utf8_general_ci,具体看下图所示
第四步:重启 mysql,然后执行 Python 脚本,看在 role 表中生成的中文是否乱码
实践证明,生成的中文没有乱码
后记
经过这几天的研究,发现主要还是 Python 脚本在创建对应的表时没有指定编码,此处涉及到一个知识点,就是 sqlalchamy 指定编码,后期可以继续研究下。。。。。
原创申明:以上内容都是笔者的经验总结,仅供参考,如需转载,请注明出处
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于