Navicat输入中文保存后显示问号

才疏学浅若有不对请一定指正!

解决方法:

一个立竿见影的方法是新建一个查询然后运行这个命令:
alter table user convert to character set utf8
注:xxx为自己的表名,utf8是想要转换成的格式

第二种方法手动设置编码见下方问题分析

问题描述:

我在navicat直接建表user ,id类型是int,其他的都为varchar,然后插入数据
Navicat输入中文保存后显示问号_第1张图片
当我输入中文保存后,我的心情和name字段一样???
Navicat输入中文保存后显示问号_第2张图片
引申一下如果你的代码有数据插入这个动作如果插入中文报了SQLException:格式错误之类的或者插入后提取出来显示问号或乱码也可能是这个错误,因为是之前解决的问题所以找不到具体报什么错了

问题分析:

1.首先是我在保存的时候没有选择保存的格式所以navicat默认给我选择了latin1这种格式,这会影响你字段的默认编码如果不手动设置utf8就默认为latin1
Navicat输入中文保存后显示问号_第3张图片
我们常用的应该设成这样完后保存,但是还要注意这样设置只是把表的编码改了但是表内的字段编码还是latin1如第二张图所示
Navicat输入中文保存后显示问号_第4张图片
Navicat输入中文保存后显示问号_第5张图片
我们还需要回到“字段”页面一个一个改,注意要点到"name"这个字段的任意单元格才会出现这个修改字符集选项然后就需要我们一个一个修改这就非常麻烦
Navicat输入中文保存后显示问号_第6张图片
所以这个命令就显得特别有用,舍去了之前那么多麻烦的操作
alter table user convert to character set utf8
运行完就直接可以用了
Navicat输入中文保存后显示问号_第7张图片
下面是演示
1.表和字段格式都为latin1
Navicat输入中文保存后显示问号_第8张图片
2.保存后中文变???
Navicat输入中文保存后显示问号_第9张图片
3.运行
Navicat输入中文保存后显示问号_第10张图片
4.可以看到都已经变为utf8,若不是可以重启下Navicat就可以看到
Navicat输入中文保存后显示问号_第11张图片
5.可以保存中文了
Navicat输入中文保存后显示问号_第12张图片

你可能感兴趣的:(笔记)