jdbc mysql 查询乱码_使用jdbc查询防止出现中文乱码的方法

在使用mysql创建数据库及表格,在navicat中可以正常查询出中文,但使用jdbc查询的结果中,中文为乱码。

网上查到资料,为了能够彻底一劳永逸的解决这个问题,需要修改mysql下配置文件my.in

打开cmd  使用   mysql -uroot -p   登录mysql之后,使用这条语句查询数据库编码 show variables like '%char%';

查询结果编码有的为lan1编码 有的是utf8编码

网上一些修改方法 是在这三个位置添加相关语句

1959290a2ef088550e342e23984c9ef2.png

经实验还是有中文乱码出现

再次使用show variables like '%char%';  查询,发现字符编码变为utf8 但是连接编码set_character_connection和其他几个还是lan1编码

后来在my.in中[mysqld]标签最下面发现这样一段

## UTF 8 Settings

#init_connect=\'SET NAMES utf8\'

#collation_server=utf8_unicode_ci

#character_set_server=utf8

#skip-character-set-client-handshake

#character_sets-dir="D:/xampp/mysql/share/charsets"

前面的井号#表示这是一段被注释掉的代码  猜测是用来设置utf8编码的

而且character_set_server=utf8这一句与网上方法相同,但网上方法并没有完全改变所有编码格式

去掉这段代码前面井号如下:

## UTF 8 Settings

init_connect=\'SET NAMES utf8\'

collation_server=utf8_unicode_ci

character_set_server=utf8

skip-character-set-client-handshake

character_sets-dir="D:/xampp/mysql/share/charsets"

使用show variables like '%char%'; 结果如下:

664e326a9cc7bd04fb9b10295a61acd9.png

重新创建数据库和表,jdbc查询测试,中文正确显示。

此外应当注意,jdbc的url后面应当指明编码格式 如下:

jdbc:mysql://localhost:3306/(这里写数据库名,不加括号)?useUnicode=true&characterEncoding=UTF-8。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值