提前说明我的问题,我一开始发现写入数据库的中文乱码,便连续进行了各种操作:
l 修改mysql的配置文件my.ini,设定了所有编码格式为utf-8,确认了表的字符集也为utf-8;
l 在每一次请求转发时都设置了请求与响应的编码为utf-8;
l 增加了过滤器类,拦截所有请求,也是设置请求与响应为utf-8;
l 而且考虑到了JSP页面与tomcat服务器的编码不统一问题,修改了相关配置文件;
但是乱码依然没有解决,此时我想到了最后一个问题:
因为我提取的是带文件的表单数据信息,这个与一般的post的普通表单不同(可以采用request.getParameter()获取参数值),必须使用item.getString()方法获得,而该方法有个重载方法为item.getString(“utf-8”),修改了此处,自己的问题终于得到解决。
相信使用数据库进行存储的大家都遇到过中文乱码问题,如何彻底解决?我百度了很多资料与博客,想把自己的经历总结起来给大家参考一下,接下来我先罗列一下大部分修改乱码问题的方法:
1. 修改mysql数据库的整体编码
引用自:http://www.cnblogs.com/24la/p/update-mysql-default-character.html
查看方式数据库编码:
1 |
show variables like 'character%'; |
该图是复制的(我的已经改好了)
出现上图情况时,可以进行数据库配置文件my.ini 文件修改:
打开my.ini找到[client]添加一行
default-character-set=utf8
找到[mysqld]这行添加代码如下
character_set_server=utf8
init_connect='SET NAMES utf8'
要记住,一般该配置文件是拒绝访问的,更别提修改了,此时可以将该文件复制到桌面,修改为txt格式强行修改内容,然后改回ini文件格式并将之前的my.ini文件删除,然后将桌面上已经修