使用jdbc查询防止出现中文乱码的方法
在使用mysql创建数据库及表格,在navicat中可以正常查询出中文,但使用jdbc查询的结果中,中文为乱码。
网上查到资料,为了能够彻底一劳永逸的解决这个问题,需要修改mysql下配置文件my.in
打开cmd 使用 mysql -uroot -p 登录mysql之后,使用这条语句查询数据库编码 show variables like '%char%';
查询结果编码有的为lan1编码 有的是utf8编码
网上一些修改方法 是在这三个位置添加相关语句
经实验还是有中文乱码出现
再次使用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%'; 结果如下:
重新创建数据库和表,jdbc查询测试,中文正确显示。
此外应当注意,jdbc的url后面应当指明编码格式 如下:
jdbc:mysql://localhost:3306/(这里写数据库名,不加括号)?useUnicode=true&characterEncoding=UTF-8。
最新文章
- css清除浮动float的三种方法总结,为什么清浮动?浮动会有那些影响?一起来$('.float')
- volley_之基本使用
- C#实用杂记-EF全性能优化技巧2
- [物理学与PDEs]第3章 磁流体力学
- 性能优化-列表类型转换(ConvertList<;TSource, TResult>;)
- Qt 学习之路:QSortFilterProxyModel
- SQL Server:错误处理及事务控制
- Hibernate4 : 持久化你的第一个类
- type=";submit"; button的用法
- C# 添加、读取Word脚注尾注
- MySQL数据库事务及其特性
- 关于MySQL什么时候使用索引问题以及什么情况下应不建或少建索引
- 一、iOS开发环境搭建
- DevExpress.XtraGrid.GridControl中数据源的绑定问题
- php多进程、IPC和事件驱动
- Codeforces.911F.Tree Destruction(构造 贪心)
- javascript sourcemap
- [sql]sqlite3板子上安装运行报错
- hdu2073-2078
- python mongodb ubuntu