今天拿出以前的代码,想重构。却发现运行起来都是乱码,原来都是好好的。心里一着急,就上网去搜索答案。
看了一大堆的Struts中文乱码解决办法。
我总结一下,(1)Jsp方面,最好写上<%@ page pageEncoding="UTF-8" contentType="text/html;charset=UTF-8"%>
(2) Struts.xml配置上,配置i18n.encoding 属性,值也为UTF-8(最好!)
(3) 如果还是不行,则就要自己写Filter类。
(4)这么一连串以后,如果是Request来获取的值,就要修改tomcat的server.xml
具体怎么做,可以自己Google,我只是简单提一下,因我这都不我想说的!
我想说的,解决问题的方法,上网查资料固然很好,但是最好是有思考的查询。不要看到就一一去试,这样太浪费时间,正如我下午一样,花了一下午的时间,测试了网上所有的方法,结果还是不行,静下心来,Debug,发现问题所在。
接下来,我就说说,遇到乱码问题的解决思路。
(1)先排除数据库的问题,直接在数据库中插入一条带中文的记录,看是否乱码。如果试数据库乱码问题,则可以更改他的字符集。
(2)再排除是Jsp-》action传值的问题,排除办法,是debug。找一个代码行设置断点。进行debug,看这是你的值是否为乱码。
如果为乱码,则是Jsp-》action的传值问题,可以按照网上的办法做一下,其实我觉得只要自己写一个Filter类即可。
如果没有乱码,那么就是action-》数据库的问题,这就是网上没有提到的,解决办法:在你的JDBC的连接字符串最后加上“?characterEncoding=utf8”,例如
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/student_manager?characterEncoding=utf8","root","root");//例子为假。
如果有人按照网上的解决方法都试了一遍,还是没有解决问题,那么可以看一下你的连接字符串。
当然乱码问题有很多种,具体问题具体分析。
正如入侵的时候,技术不是最重要的,思路才是最重要的!
排错的时候也是如此!
Struts , Jsp 上传数据乱码问题,布布扣,bubuko.com
原文地址:http://blog.csdn.net/hackingwu/article/details/25898849