我朋友的项目出现了一个问题,项目插入数据和读取数据的时候,中文都ok,但是工具看到的都是乱码。于是昨晚我看了一下。
平台是 windows8 mysql5.5
show variables like 'character%';
我试了这句后,发现mysql里面都不是utf8(注意这里 在mysql中不是utf-8)
然后看了一下他们的数据库连接,是这样的
jdbc:mysql://localhost:3306/databasename?characterEncoding=UTF-8
目前我推测就是这句话 。使得数据插入错误编码,读取错误编码,导致的负负为正的正确结果。
他在mysql自带的工具里面试,还是乱码,这里要说一下,windows下的dos下的读取中文是不可信的,因为他和dos的编码有关,最新版的mysql(MYSQL5.6.45) 安装好之后会有两个 MySQL 5.6 Command Line Client 其中一个就是utf-8的。
继续:
我要解决问题,第一就是修改mysql编码
在mysql安装目录下有一个 mysql Server Instance Config Wizard 运行一下,然后会有配置。
(mysql5.6 没有发现这个,待续。)
配置好了之后,程序还是ok的,之前的数据已经乱码了,插入 读取ok,但是sql工具(navicat.exe)看到还是乱码。
这个时候我就把问题放在了工具身上,检查连接属性发现 这里的使用 MySQL字符集没有勾选,勾选之后,一切ok。
在修改链接工具之前,还做过一次尝试,不过没有 。就是转储sql后,新建了一次数据库
CREATE DATABASE `test2` DEFAULT CHARACTER SET utf8 COLLATE
mysql5.6 设置问题待续: