解决mysql和可视化工具Navicat与web应用中数据库传输中文乱码问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_32352825/article/details/78363134

  关于网上解决乱码的问题有许多也很成熟了,将mysql和他的可视化工具Navicat之间统一编码问题也有许多,本篇文章旨在回顾mysql与Navicat之间的统一编码的所有方式,和web应用中传输中文乱码做统一规划,由于本人水有限,文中有不少错误的地方望批评改正。

  
   大家都知道,之所以乱码是因为编码和解码不统一所造成的,当然,我们所熟知的编码格式中UTF-8,想必非常熟悉,UTF-8是国际编码,能解析所有字符,故一般网站采用UTF-8编码。

   mysql方面编码问题统一UTF-8解决方案

修改mysql安装目录下my.ini文件:

  打开mysql默认安装路径下的my.ini文件,

设置  default-character-set=utf8 ,当然,需要你在建数据库之前和建表之前设置,

然后,设置数据库xxxx的编码格式:

ALTERDATABASE `xxx` DEFAULTCHARACTER SET utf8 COLLATE utf8_general_ci;

然后,设置xxx表的编码格式为utf-8:
ALTERTABLE `testTable` DEFAULT CHARACTERSET utf8 COLLATEutf8_general_ci;

好了,然后查看数据库编码格式:
showcreate database xxx; 为utf-8则说明编码设置完成了

好了,然后查看数据库表的编码格式:

showcreate tabletestTable;

设置完成!MySql统一了utf-8编码.

Navicat工具设置编码解决方案:

很简单,打开工具,新建连接,打开高级选项,设置如界面所示:

编码设置自动就可以, 当然 ,也可以在该工具设置数据库和表编码格式,很简单不做介绍了,右键表对象 信息就可设置。

Web应用中设置编码解决方案:

上述步骤设置完成后,我们做一个jsp界面用于过去mysql中的数据,并将表的数据呈现出来,设置可以编辑,和添加操作,

当然,还要设置编码格式:

然后,在java中获取连接时指定utf-8编码:

// 获取数据库连接。 三个参数分别为 连接URL,用户名,密码
        conn = DriverManager.getConnection(
                            "jdbc:mysql://localhost:3306/databaseWeb?charracterEncoding=UTF-8",
                            "root",
                            "root");
       
指定charracterEncoding=UTF-8

然后,设置request和response编码统一,当然,推荐设置在filter中:

好了,启动服务器,打开网页:

没问题,然后点击修改保存:

还是没问题,

当然,你通过MySql命令行查看,和通过可视化工具Navicat编辑查看,和网页上读取和设置中文然后读入mysql,都没有出现乱码问题,

至此,乱码问题全部解决。

猜你喜欢

转载自blog.csdn.net/qq_32352825/article/details/78363134