此文献给重度强迫症的自己和广大深受mysql乱码折磨的朋友们。
对于此前乱码问题,都是解决一次忘一次,每次都疯狂找资料,这个不行下一个,每次都要花n久时间搞定。加之强迫症的自己动不动喜欢重装系统。更是烦恼不已。因此特将搜集到的各种方法做个系统的汇总,由小到大一一列出解决措施。
查看数据库编码格式
show variables like '%character%'
这里发现我们的字符编码都是latinl 而非我们想要的utf-8,问题找到了,那么动手咯。
### 方法一:
set character_set_client=utf8;
除了character_set_filesystem必须为binary外其他属性都以此设置为utf8,但是以这种方式修改的推出重新打开命令行后,编码依旧恢复latinl。
这里有两种方式可以保存修改的编码方式
1.修改my.ini(较为繁琐)
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
default-character-set=utf8 或 character-set-server=utf8
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
default-character-set=utf8 或 character-set-server=utf8
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
default-character-set=utf8 或 character-set-server=utf8
注: 若使用character-set-server=utf8 语句可免去下面步骤(亲测可行)
[mysqld]标签处使用 ‘character-set-server=utf8’效果
以上3个section都要加default-character-set=utf8,平时我们可能只加了mysqld一项。保存并关闭.
在data/performance_schema目录下的: db.opt文件:
default-character-set=utf8
default-collation=utf8_general_ci
[mysqld]标签处使用 ‘character-set-server=utf8’效果
以上3个section都要加default-character-set=utf8,平时我们可能只加了mysqld一项。保存并关闭.
在data/performance_schema目录下的: db.opt文件:
default-character-set=utf8
default-collation=utf8_general_ci
[mysqld]标签处使用 ‘character-set-server=utf8’效果
以上3个section都要加default-character-set=utf8,平时我们可能只加了mysqld一项。保存并关闭.
在data/performance_schema目录下的: db.opt文件:
default-character-set=utf8
default-collation=utf8_general_ci
2.重新配置MYSQL
找到这个exe文件
到这个界面刹下车,修改下字符编码方式。
此时查看下中文乱码问题是否解决,如果解决了的话恭喜脱离苦海(233),但是针对大多数情况该乱码还得乱码,坑爹。。。
此时据说是由于windows平台中文是GBK导致,因此如果依旧是中文乱码的朋友按照先前方式将编码方式改为GBK看看效果。
当时以上情况如果乱码方式仍然没有得到解决,可将数据库连接的url 设置字符编码
<property name="hibernate.connection.url">jdbc:mysql://127.0.1:3306/hibernate_day02?characterEncoding=UTF-8</property>
到这里应该 中文乱码应该大多都能得到解决了。
对于数据库可视化工具中文乱码解决措施(navicat为例)
- 检查数据库编码方式
- 检查表编码方式
- 检查字段编码方式
- 将连接编码方式改为自动
如果以上有什么不对的话欢迎各位朋友斧正!!!