由于MySQL中一些配置没有默认设置为utf8时可能发生一些错误,下面是个人的一些总结,以供参考。
1.查看默认格式
在MySQL中输入以下命令
show variables like ‘char%’;
下面的步骤来修改为utf8格式
2.修改格式
打开my.ini文件(比如我的在 C:\ProgramData\MySQL\MySQL Server 5.7 )
添加或修改
[client]
default-character-set = utf8
[mysql]
default-character-set = utf8
[mysqld]
character-set-server=utf8
如果这里之后,你的默认格式已经设为上图utf8,就算成功了。事实上,稍后你查看 show variables like ‘char%’; 后
character_set_database 和
character_set_server
可能还是 latin1
一种方法使在MySQL中使用下面命令手动设置
set character_set_database=utf8;
set character_set_server=utf8;
3.Django中migrate出现1366错误
django.db.utils.InternalError: (1366, “Incorrect string value: ‘\xE7\x94\xA8\xE6\x88\xB7’ for column ‘name’ at row 1”)
出现这种错误是因为在未完成修改为utf8格式时就已经创建了数据库
解决策略:
1.备份原数据库数据
2.drop 旧db
3.drop 新db
4.迁移数据库
提示:旧db和新db名字最好一样