|
现在使用struts2框架的项目越来越多,而其间碰到乱码题目有时也不可避免,以下就该题目做一个思路总结,既然是思路总结,相关的解决办法在网上会有良多,请直接Google即可。以下我们就所使用的编码是UTF-8编码格局。
1、查看jsp页面、java代码文件是否使用的同一编码。
2、struts.xml文件中是否已经加入编码<constant name=”struts.i18n.encoding” value=”UTF-8″></constant>
3、在jsp页面中加入<meta http-equiv=”Content-Type” content=”text/HTML; charset=UTF-8″>定义
4、数据库jdbc连接加入编码定义conn = DriverManager.getConnection(“jdbc:mysql://localhost/guestbook?useUnicode=true&characterEncoding=UTF-8″, “root”, “root”); (留意里面参数可能和你的项目不同)
5、在service或者action中的提交方法中(这里我们假设情况是提交汉字显示乱码)使用 System.out.println(“add: ” + message.getContent());显示你提交的内容是否乱码(留意里面参数可能和你的项目不同),假如这里在控制台显示的是乱码,那说明你提交的页面以及action等仍是编码分歧错误,请再次检查是否已经同一编码。
6、假如第五条显示的是准确信息,修改数据库中的乱码为汉字,访问显示页面查看是否正常,假如正常说明你的显示流程是准确的,假如不正常,请和上一条一样查看你的显示文件代码。
7、以上几条都已经试验过,仍是乱码,那么请检查你的数据库。包括,库、表、字段都要为同一编码。可以的话,把数据库以sql形式导出,查看代码编码是否准确后,再导入。
8、查看数据库my.ini文件是default-character-set=utf8编码格局。假如你使用的是绿色版,默认是不会有 my.ini文件产生的,所以也就更无从谈起编码设置题目,请使用自带的例子.ini文件改名为my.ini文件设置。这里推荐安装版的设置向导。
9、假如以上题目仍是得不到解决可以考虑在web.xml中使用拦截器解决了,使用拦截器解决方式非常不推荐使用,由于struts2设计的时候已经为你想的很殷勤了,你的项目在必需需要拦截器来解决的同时,也就意味着你可以考虑你的设计思路已经在错误的轨道上了。
10、仍是不行?估计你发现了个bug或者人品题目了,good luck…… |
|