Navicat输入中文保存后显示问号
才疏学浅若有不对请一定指正!
解决方法:
一个立竿见影的方法是新建一个查询然后运行这个命令:
alter table user convert to character set utf8
注:xxx为自己的表名,utf8是想要转换成的格式
第二种方法手动设置编码见下方问题分析
问题描述:
我在navicat直接建表user ,id类型是int,其他的都为varchar,然后插入数据
当我输入中文保存后,我的心情和name字段一样???
引申一下如果你的代码有数据插入这个动作如果插入中文报了SQLException:格式错误之类的或者插入后提取出来显示问号或乱码也可能是这个错误,因为是之前解决的问题所以找不到具体报什么错了
问题分析:
1.首先是我在保存的时候没有选择保存的格式所以navicat默认给我选择了latin1这种格式,这会影响你字段的默认编码如果不手动设置utf8就默认为latin1
我们常用的应该设成这样完后保存,但是还要注意这样设置只是把表的编码改了但是表内的字段编码还是latin1如第二张图所示
我们还需要回到“字段”页面一个一个改,注意要点到"name"这个字段的任意单元格才会出现这个修改字符集选项然后就需要我们一个一个修改这就非常麻烦
所以这个命令就显得特别有用,舍去了之前那么多麻烦的操作
alter table user convert to character set utf8
运行完就直接可以用了
下面是演示
1.表和字段格式都为latin1
2.保存后中文变???
3.运行
4.可以看到都已经变为utf8,若不是可以重启下Navicat就可以看到
5.可以保存中文了