jsp本地测试正常,上传到服务器后,在后台管理界面添加数据,存到数据库中之后中文显示为乱码,但是通过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:3316/db_name?useUnicode=true&characterEncoding=UTF-8
3.查询数据库字符集情况,解决问题,在phpmyadmin进行的查询,或使用mysql其他客户端工具执行命令行:
SHOW VARIABLES LIKE '%colla%';
修改msyql配置文件,在my.ini增加以下代码:
[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
重启mysql生效,问题解决。