Javaweb项目,本地测试正常,上传到阿里云上之后,在后台管理界面添加数据,存到数据库中之后中文显示为乱码,但是通过phpmyadmin直接添加数据没有问题,一顿百度之后问题终于解决~~在这里总结一下可能有用的方法
1..首先,各种编码要保持一,比如:
//jsp页面设置
<%@ page contentType="text/html;charset=utf-8"%>
<meta content=”text/html;charset=utf-8″ />
//servlet
request.setCharacterEncoding("utf-8");
2..数据库建表的url,如
url=jdbc:mysql://127.0.0.1:3306/blog?useUnicode=true&characterEncoding=UTF-8
3..查询数据库字符集情况,解决了我的问题,我是在phpmyadmin进行的查询,mysql命令行同理
SHOW VARIABLES LIKE '%colla%';
这是我修改之后的结果,没修改之前我的character_set_server 编码是utf8mb4,这几个地方最好保持一致
修改方法:在my.ini添加 <CentOS rpm方式安装的mysql,my.conf一般位置在/etc/my.cnf>
[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
重启mysql生效