解决向表中添加中文数据报错的问题

可能有人在往表中添加数据时会遇到这类报错

django.db.utils.InternalError: (1366, "Incorrect string value: '\\xE9\\x9A\\..................

以下是亲测比较有效的解决方案

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] 

                   character_set_server=utf8 
                   collation_server=utf8_general_ci 

 (后来我发现配置文件里的内容可加可不加,当然加了好像也没什么影响,只要是适合自己电脑的方法就是好方法)

 我这边陆续操作下来发现基本上都是服务器配置

 后面的操作应该基本上不要修改

 接下来我就直接保存了

 然后我是在命令行界面进入指定的数据库里更改该表的字符编码

 

 

 

 

----------------------------------------------------------------------------------------------------------------------------------------------------

以下是一些引用的参考资料,供日后借鉴学习

 a)查看数据库的编码:show create database databaseName;
 b)修改数据库编码: alter database databaseName default character set utf8 collate utf8_general_ci;
 a)查看建表的编码:show create table tableName;

下面附上mysql的一些相关命令:

通过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

猜你喜欢

转载自www.cnblogs.com/cxydnxs/p/12551416.html
今日推荐