之前写了一个个人小项目,最后在本机调试完后部署到服务器上,发现写入数据库中文乱码,几经周折不得其果,项目也因此停滞数月至今,直到今天又遇到这个问题……
问题一
- 背景描述:
数据库建库建表时编码都为utf8,javaweb方面request和response也都用filter同一进行utf-8编码。服务器端sql语句手动插入中文数据不会乱码,javaweb调试时request等获取数据输出也不会乱码。本机调试一切ok,但是部署到服务器后,插入所有中文全部乱码。 - 最终解决办法
在jdbc连接数据库时加上以下语句:characterEncoding=UTF-8
例如:
jdbc:mysql://localhost:3306/store?characterEncoding=UTF-8
吐槽:几近绝望竟然是因为这个原因,发个博客感慨一下
问题二:
- 问题描述:阿里云Windows服务器配置MySQL时出现问题,MySQL各种编码已确认全是utf8,但是dos界面无法插入中文。
问题原因:因为dos的客户端的编码是gbk,所以插入gbk中文到utf8编码的mysql就会乱码
解决方法:mysql输入端要设置成gbk
set names gbk;