解决向表中添加中文数据报错的问题
Posted cxydnxs
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决向表中添加中文数据报错的问题相关的知识,希望对你有一定的参考价值。
可能有人在往表中添加数据时会遇到这类报错
django.db.utils.InternalError: (1366, "Incorrect string value: ‘xE9x9A..................
以下是亲测比较有效的解决方案
mysql版本:5.6
网传向DATABASES中添加
实际上效果并不明显,当然我也在此之后删表重建过了。
然后就只能另辟蹊径了
在这里看出character_set_database默认编码方式是拉丁文而不是utf8
所以接下来需要配置my.ini配置文件,这个配置文件默认路径应该是在c盘下的ProgramData文件夹下
当然接下来的方法我是引用了一个大神的思路
查看设置:show global variables like ‘character_set_server‘; 和 show global variables like ‘collation_server‘;
修改设置: [mysqld]
(后来我发现配置文件里的内容可加可不加,当然加了好像也没什么影响,只要是适合自己电脑的方法就是好方法)
我这边陆续操作下来发现基本上都是服务器配置
后面的操作应该基本上不要修改
接下来我就直接保存了
然后我是在命令行界面进入指定的数据库里更改该表的字符编码
----------------------------------------------------------------------------------------------------------------------------------------------------
以下是一些引用的参考资料,供日后借鉴学习
a)查看数据库的编码:show create database databaseName;
b)修改数据库编码: alter database databaseName default character set utf8 collate utf8_general_ci;
a)查看建表的编码:show create table tableName;
通过MySQL命令行修改:
set character_set_client=utf8;
set character_set_connection=utf8;
set character_set_database=utf8;
set character_set_results=utf8;
set character_set_server=utf8;
set character_set_system=utf8;
set collation_connection=utf8;
set collation_database=utf8;
set collation_server=utf8;
修改数据库字符集:
ALTER DATABASE db_name DEFAULT CHARACTER SET character_name [COLLATE ...];
如:
ALTER TABLE test CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
修改表的默认字符集:
ALTER TABLE tbl_name DEFAULT CHARACTER SET character_name [COLLATE...];
如:ALTER TABLE logtest DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
修改字段的字符集:
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;
原文链接:https://blog.csdn.net/oopsangle/article/details/24873419
以上是关于解决向表中添加中文数据报错的问题的主要内容,如果未能解决你的问题,请参考以下文章