mysql 驱动 乱码_JDBC驱动mysql的中文乱码解决方案

在使用JDBC的DriverManager驱动连接MySQL并插入GBK或GB2312编码的中文数据时,常常遇到乱码问题。解决方法包括确保数据库、连接和结果集的字符集设置为GB2312,以及在URL中加入`useUnicode=true&characterEncoding=gb2312`参数。通过这些步骤,可以避免存储过程中的中文乱码问题。
摘要由CSDN通过智能技术生成

在通过jdbc的driver manager驱动mysql并插入数据时,我们似乎常遇到编码问题,尤其是中文gbk或者gb2312。今天终于找到了解决方案,可能大家的问题还更加复杂。

首先需要保证如下变量的字符集编码都是gb2312,也就是和你程序使用的string字符编码统一。

/**

* 创建数据库,由于网页使用了GB2312编码,所以需要先把数据库如下字符集编码更改为GB2312

*

* character_set_client:客户端的字符集

* character_set_results:结果字符集

* character_set_connection:连接字符集

* set character_set_XX = GB2312

*/

可以在mysql命令行输入 set character_set_XX = GB2312来修改。

接着,在命令行输入 \s 来检查变量是否已经改变,此时你会发现db还是之前默认的编码,那么程序中create database的时候就要设置default character set GB2312。

现在看似已经把三个变量都改成了GB2312的编码,但是存储中文数据还是显示乱码。而且在命令行输入 show procedure status 显示的character_set_client还是之前默认的编码格式(提醒:不用像网上说的那样修改my.ini文件,说不定改了还影响mysql的启动,不信你试试)。其实就是连接少了一句,这也是关键哦!!!

加载驱动之后,

String url = "jdbc:mysql://localhost:3306/?useUnicode=true&characterEncoding=gb2312" ;

在看存储过程的状态,这里就把character_set_client真正改变了!麻麻终于不用担心我的mysql有中文乱码了~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值