码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2020-03-23 12:37:39      阅读:74      评论:0      收藏:0      [点我收藏+]

标签:字符集   路径   client   mic   varchar   ike   base   方案   inter   

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

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

 

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

标签:字符集   路径   client   mic   varchar   ike   base   方案   inter   

原文地址:https://www.cnblogs.com/cxydnxs/p/12551416.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!