ERROR 1366 (HY000): Incorrect string value: ‘\xE5\xBC\xA0\xE4\xB8\x89‘ for column ‘name‘ at row 1
遇到问题不要心慌不要着急。耐心的解决这个问题,在这个过程中你会学习到一些相关的操作和加深对一些工具使用的了解。
首先百度一圈虽然没能解决我的问题,但是基本可以定位就是编码遇到了问题,朝着编码怎么修改的方向努力,最终肯定能解决这个问题。
第一步:
我是在图形化界面中操作的,首先选择左上角File,一般修改文件相关配置,都是选择File。
File—>setting,了解设置的应该知道在“Editor”中设置颜色,字体大小,编码什么的。如果不知道可以先尝试搜索“utf-8”,看看可能在哪里出现这个字段。
假设都不知道吧,选择File->setting->Editor->File Encodings进入后,将所有的都设置为utf-8.在以后的编码过程中,尽量选择utf-8,基本不会出错。
在设置过后(先appley后ok)返回,重新执行,发现还是不能解决这个问题。
第二步:
通过指令查看当前数据库和数据库表结构的编码集。
show variables like "%char%";
尝试修改里面的内容,看看是否通过修改后,能解决这个问题。
我们来分析下这几个具体是什么意思:
character_set_client:
设置客户端使用的字符集。
character_set_connection:
设置连接数据库时的字符集,如果程序中没有指明连接数据库使用的字符集类型则按照这个字符集设置。
character_set_database:
设置默认创建数据库的编码格式,如果在创建数据库时没有设置编码格式,就按照这个格式设置。
这一栏的编码为latin1,此编码不支持中文,需要修改
character_set_filesystem:
文件系统的编码格式,把操作系统上的文件名转化成此字符集,即把 character_set_client转换character_set_filesystem, 默认binary是不做任何转换的。
character_set_result:
数据库给客户端返回时使用的编码格式,如果没有指明,使用服务器默认的编码格式。
character_set_server:
服务器安装时指定的默认编码格式,这个变量建议由系统自己管理,不要人为定义。
character_set_system:
数据库系统使用的编码格式,这个值一直是utf8,不需要设置,它是为存储系统元数据的编码格式。
character_set_dir:
这个变量是字符集安装的目录。
————————————————
经过阅读了解上面详细的描述,基本可以确定问题出在;character_set_database这个属性的设置上。如何修改这个属性就可以解决这个问题了。需要将latin1修改为utf-8.
当点击它的值时:想对他直接进行修改的时候,报“Table is read-only. Unresolved table reference”
第三步:
找到了问题的原因,下面就是如何能修改成功这个值了。
网上参考资料大概这样:
首先图一:不同的界面化工具在创建表的时候,不一定能进行这样的选择。但是方法讲的是对的。
其次图二:难度有点高,可以作为参考,这个方法不一定能实现。
我自己操作的时候,使用了如下的指令对其进行修改:
set character_set_database = utf8;
刷新下面字符编码的时候,看着编码是被修改了,但是执行sql的时候还是报错了。重启界面化工具的时候,再次获取他的权限,发现并未修改成功。
第四步;
继续探索如何修改这个编码;
alter database 数据库名 character set 'utf8';
alter table 数据库表名 convert to character set 'utf8';
通过这两句代码修改后,是可以成功修改数据库表,可以填充的内容了。
总结;首先在创建表的时候,要设置编码,但是有的界面化工具并不支持,或者或我不知道在哪设置,或者说在哪统一设置我暂时还不知道,以后会更新这里。
其次,在解决问题的过程中,也是提升自己和更加深入了解界面化工具的过程和书写不同代码的过程,所以遇到问题不要慌张,慢慢研究。
参考阅读:https://blog.csdn.net/Kunki0417/article/details/125106914