解决mysql5.0,Navicat for MySQL,IntelliJ IDEA之间中文乱码

avatar
作者
猴君
阅读量:0

使用软件版本

jdk-8u171-windows-x64

ideaIU-2021.1.3

mysql-essential-5.0.87-win32

navicat8_mysql_cs

这个问题我调试了好久,网上的方法基本上都试过了,终于是解决了。

三个地方结果都不一样。

方法一

首先大家可以尝试下面这种方法:

如何解决mysql表输入中文出现问号的问题_Mysql_脚本之家 (jb51.net)icon-default.png?t=N7T8https://www.jb51.net/database/314758xzq.htm

方法二

但是我这里还是没有解决,然后尝试下面这种方法

IDEA 与 Navicat 互相中文乱码(数据库、IDEA设置都是 UTF-8)_在idea表单中提交数据navicat显示乱码-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/qq_44111597/article/details/113499720

IDEA中连接MySQL数据库查看表信息时可能出现中文乱码问题的终极解决方案 - 烤盐咸鱼 - 博客园 (cnblogs.com)icon-default.png?t=N7T8https://www.cnblogs.com/A-Lynn/articles/17260096.html

网上基本上就是这种了,然后将mysql设置成utf8后,插入中文都显示失败了,但是在navicat和idea插入并没有问题,就是会显示乱码。

方法三

最全idea java连接mysql数据库中文乱码解决方案_为什么mysql的数据库导入idea是乱码-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/xukaiqiang123/article/details/108802118还是修改配置文件,修改idea的配置文件后,还是会乱码,但是可以解决tocat控制台乱码的问题。

我的解决

总结上述就是对于idea,修改file Encodings里面的编码,全部换成utf-8,对配置文件进行新增-Dfile.encoding=UTF-8。

对于mysql的就是修改配置文件my.ini,对于navicat就是修改连接属性,如果上诉全部都试过了,无法解决,可以试一下我的方法。

ERROR 1366 (HY000):Incorrect string value解决方案_error 1366 (hy000): incorrect string value-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/word_joke/article/details/84035375我最开始是可以在命令行直接用mysql插入中文,就是设置了编码把全部的latin1换成了utf8,结果中文也插入不了了,然后上课老师显示在navicat里面插入中文,然后用idea读取数据并不会乱码,这个是因为我第一次打开navicat的时候显示乱码的时候修改了navicat的属性,然后导致现在修改navicat中的乱码文中文,idea也不会显示中文,因为忘记了之前怎么设置了,所以我直接卸载,然后重新安装了navicat软件,现在显示navicat和mysql之间是乱码的,但是和idea之间是正常的了。

现在发现是勾选“使用MySQL字符集”,idea和navicat就同步了。

 对于mysql和navicat的同步,我是根据报错信息来解决的,将编码修改成gbk格式。

首先要设置my.ini文件的权限,没有权限的话,下次登录又是乱码的情况。

如果没有修改过字符集结果编码格式应该是:

Enter password: **** Welcome to the MySQL monitor.  Commands end with ; or \g. Your MySQL connection id is 147 Server version: 5.0.87-community-nt MySQL Community Edition (GPL)  Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.  mysql> set character_set_client='gbk'; Query OK, 0 rows affected (0.00 sec)  mysql> set character_set_connection='gbk'; Query OK, 0 rows affected (0.00 sec)  mysql> set character_set_results='gbk'; Query OK, 0 rows affected (0.00 sec)  mysql> set character_set_server='gbk'; Query OK, 0 rows affected (0.00 sec)  mysql> set character_set_database='gbk'; Query OK, 0 rows affected (0.00 sec)  mysql> show variables like 'char%'; +--------------------------+---------------------------------------------------------------+ | Variable_name            | Value                                                         | +--------------------------+---------------------------------------------------------------+ | character_set_client     | gbk                                                           | | character_set_connection | gbk                                                           | | character_set_database   | gbk                                                           | | character_set_filesystem | binary                                                        | | character_set_results    | gbk                                                           | | character_set_server     | gbk                                                           | | character_set_system     | utf8                                                          | | character_sets_dir       | C:\Program Files (x86)\MySQL\MySQL Server 5.0\share\charsets\ | +--------------------------+---------------------------------------------------------------+ 8 rows in set (0.00 sec)

set character_set_client='gbk';  set character_set_connection='gbk';  set character_set_results='gbk';  set character_set_server='gbk';  set character_set_database='gbk';  show variables like 'char%';

 

 发现最后一行是所有都是乱码的,重新插入一行数据测试一下。

 发现就莫名其妙解决了,但是mysql采用的是gbk编码,在浏览器显示会不会出现乱码,这里打开tocat看一下,发现也没有问题。

那这到这里结束了,如果用前面的方法可以解决就用前面的方法,因为我也不知道按照我的修改后面会发生上面问题,只要是我看到网上写的都大差不差,但是都不能解决我出现的问题,所以只能自己摸索出一种解决方法。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!