今天使用DBUtils操作Mysql插入数据,结果乱码,数据库是utf8的。
--show variables like 'character%'; 查看数据库编码
+--------------------------+-----------------------------------------------+
| Variable_name | Value |
+--------------------------+-----------------------------------------------+
| character_set_client | gbk |
| character_set_connection | gbk |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | gbk |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | c:\wamp\bin\mysql\mysql5.5.24\share\charsets\ |
+--------------------------+-----------------------------------------------+
说明client connection results 都是gbk的。导致工程里插入utf8字符串也乱码。
随后使用
--set names utf8; 将client connection results设置为了utf8.运行java工程插入后还是乱码。 因为这个更改只是更改了这个dos窗口连接的编码方式,不是整个mysql的。
最终使用:?useUnicode=true&characterEncoding=utf8 追加到url后面即可指定本地连接的编码方式。
如:
jdbc:mysql://localhost:3306/mydatabase?useUnicode=true&characterEncoding=utf8
最终OK了。这也是个小知识吧。以后要记得。