随笔 - 5  文章 - 17  trackbacks - 0
<2007年6月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

常用链接

留言簿(3)

随笔分类

随笔档案

搜索

  •  

最新评论

阅读排行榜

评论排行榜

使用AppFuse 2.0-M5创建一个类型为appfuse-basic-struts的工程,执行mvn jetty:run-war运行时发现页面上显示的中文全部为乱码,如图:


使用Google在网上找了很久,能找到AppFuse相关的乱码问题的都是1.x的,没有2.0的资料。在官网论坛里看到有人问同样的问题(http://www.nabble.com/forum/ViewPost.jtp?post=10896381&framed=y&skin=2369),Azarias Tomás 在他的回帖(http://www.nabble.com/forum/ViewPost.jtp?post=10900490&framed=y&skin=2369)中提到:

I was having the same problem but I disable the gzipFilter,
Now it's OK!

这么简单?于是尝试把<project_name>\src\main\webapp\WEB-INFweb.xml中关于gzipFilter的映射注释掉,重新运行,效果如图:


嗯,在表格上下方还有乱码。查看JSP源码,发现该部分是由displaytag render的。又经过一番搜索,在<project_name>\target\<project_name>-1.0-SNAPSHOT\WEB-INF\classes目录里找到displaytag_zh_CN.properties。用notepad打开它,里面的中文显示为乱码。奇怪的是用Eclipse以UTF-8格式打开它,能看到大部分中文。大部分中文的意思是每句中文的末尾多了一个?号,或末尾的一、两个汉字变成了?号。

把displaytag_zh_CN.properties复制为另一个文件,比如temp.txt,用notepad打开,再把Eclipse中显示的文本复制到notepad中,适当编辑(去掉多的?号,把缺少的文字补上),保存回temp.txt。这样是保证文本以ASCII编码方式保存的,而不是Unicode方式。

使用native2ascii把temp.txt转换为Latin-1编码的文本,保存为displaytag_zh_CN.properties

重新运行,效果如图:

可以看到所有的中文均能正常显示了。
posted on 2007-06-29 11:21 雨奏 阅读(2783) 评论(3)  编辑  收藏 所属分类: Java

FeedBack:
# re: AppFuse 2.0-M5中文乱码一例与解决办法 2007-06-29 13:25 cresposhi
我以前在1.9就碰到过,一样的问题  回复  更多评论
  
# re: AppFuse 2.0-M5中文乱码一例与解决办法 2007-06-30 18:20 雨奏
今天又再看了一下AppFuse 2.0-M5的maven 2 repository,发现displaytag_zh_CN.properties这个文件是放在<M2_REPO>/repository/org/appfuse/appfuse-web-common/2.0-m5/appfuse-web-common-2.0-m5.war这个包中的。将该包中的WEB-INF/classes目录中的displaytag_zh_CN.properties使用附件中的压缩包的同名文件替换,以后使用AppFuse创建工程就不会再出现displaytag相关的乱码了,只需要注释掉web.xml中gzipFilter相关的映射

附件:http://www.blogjava.net/Files/RhythmOfRain/displaytag_zh_CN.properties.zip  回复  更多评论
  
# re: AppFuse 2.0-M5中文乱码一例与解决办法[未登录] 2007-08-11 22:50 hans
我下载的1.9.4怎么没有导出选项,请问那里设置?  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: