Appfuse 乱码问题
Appfuse是一个辅助快速开发的JAVA EE框架,本文主要阐述在Appfuse中出现的字符编码问题。
1. DisplayTag表格导出Excel乱码问题。
(项目搭建初期导出的Excel中文会乱码)
解决方法:在项目的根目录中的pom.xml中加入一个依赖:
<dependency>
<groupId>displaytag</groupId>
<artifactId>displaytag-export-poi</artifactId>
<version>1.2</version>
</dependency>
同时,修改displaytag.properties ,在此文件中增加一行:export.excel.class=org.displaytag.export.excel.ExcelHssfView。
2. DisplayTag表格上方出现乱码。
在项目搭建的初始阶段,表格上方的”共找到。。。到。。条”这些全是乱码。
在Netbeans中打开displayTag.zh_CN.properties,看到的也全是乱码。
解决方法是,用记事本打开这个文件,另存为UTF-8格式;注意Netbeans对这种编辑方式支持并不好,所以直接使用记事本更简单快捷。
3. 在jsp文件中,输入中文时,提示保存为ISO-8859-1的格式,在部署页面中出现乱码。
在Netbeans中如果直接保存会产生乱码。
解决方法:用记事本或其它文本编辑器,直接在此jsp文件中输入中文并保存为UTF-8格式即可。
但是请注意,由于JSTL已经提供了良好的i18N功能,在默认情况下,最好使用<fmt:message value=”">的形式,而不是直接在页面中使用中文。
4. NamedQuery的字符编码问题
queryParams.put(“runningStatus”, “作为备件”) // 这种写法无法查询出结果
解决方案:
String temp = new String(“作为备件”.getBytes(), “UTF-8″); // 必须用这种方式
queryParams.put(“runningStatus”, temp);
NameQuery 主要出现在 model包下,具体请查看相应的源代码。
5. Appfuse提供了文件上传功能,但没有提供文件下载功能。在自己写了个文件下载功能以后,文件下载时文件名,中文名会乱码
解决方案:
response.setHeader(“Content-Disposition”, “attachment;fileName=”+java.net.URLEncoder.encode(name, “UTF-8″));
其中,name为保存文件名的变量。
6. MySQL中文问题
重新运行并配置MySQL,将默认的字符编码设置为UTF-8格式,并确保导入的数据也是UTF-8格式。
PS:本文是用 Word 2010 发表的,不过感觉没有 Windows live writer 好用。
评论