Java插入sql数据后,显示的中文不正确或乱码

Posted tao687000

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java插入sql数据后,显示的中文不正确或乱码相关的知识,希望对你有一定的参考价值。

问题描述:

最近在学用IDEA控制mysql数据库,使用的是MyBatis框架;在插入中文时,显示不正确的中文或者乱码。

问题解决:

  • MySQL设置问题?

由于我不是MySQL的问题,所以跟着修改之后,在IDEA中插入数据之后,中文仍然没有正确显示。

该方法是在其他博主那边看到的,针对MySQL数据库自身数据库出现问题的情况,可以尝试更改。那么为了看看到底是不是MySQL的问题,先不要着急更改,可以先在MySQL终端插入数据看看能不能正确显示中文;可以正确显示中文的话,直接跳到第二个方法。

insert into t_user (username, password, phone, address) values ("tom","456","987","临海");
select * from t_user;

在终端打开MySQL,查看语言设置是否为utf-8:

show variables like 'character%';
图1 原语言设置图

可以看到并不全部为utf-8,所以操作设置为utf-8:

charset utf8;
图2 修改为utf8后的语言设置图
  • IDEA设置问题?

File→Settings...→Editor→File Encodings→Global Encoding、Properties Files;将这两个(即下图4所标的1和3)设置成UTF-8。

当使用配置文件+接口的方式,通过代理自动生成DAO时,图4的2也需要设置成UTF-8,且Path里面的接口,后面Encoding也需要改为UTF-8。

图3 步骤流程1
图4 步骤流程2

设置之后,再用IDEA插入数据,可以看到正确显示的中文,撒花~~~

图5 排错之后正确显示的8/9/10行

希望有所帮助,欢迎讨论,共同进步!

以上是关于Java插入sql数据后,显示的中文不正确或乱码的主要内容,如果未能解决你的问题,请参考以下文章

在SQLServer中使用SQL语句插入数据出现乱码或问号的解决方法

SQL插入数据中文为乱码

Linux环境下MySQL数据库用SQL语句插入中文显示 “问号或者乱码 ” 问题解决!

关于ACCESS数据库插入或更新数据的溢出问题

mysql使用存储过程插入数据后,参数为中文的为?或乱码

java插入中文到oracle变问号