Displaytag的国际化

项目中用的displaytag的版本是1.0,但是不知道具体是哪个版本,JAR的全名是displaytag-1.0.jar,项目对于JAR包的使用也没有更详细的说明,问题是对于displaytag_zh_CN.properties文件如果像struts中那样,把中文使用native2ascii命令处理后反而会显示乱码,而不加任何处理也就是说属性文件中的键值对就类似下面这样:export.banner=<div class="exportlinks">选择输出报表: {0}</div>,反而不会出现乱码,这显然和普通的国际化背道而驰,于是我到sourceforge上下载了最新的displaytag的1.0版本,问题就解决了。

我想着可能是因为displaytag在1.0版本时更新的频率非常快,而项目中使用的较老的版本对国际化的支持还存在一些问题。下面是displaytag处于1.0时的更新时间表:

版本号 更新日期
1.0-b1 (2003-09-21 22:00)
1.0-b2 (2003-12-07 23:00)
1.0-b3 (2004-04-11 22:00)
1.0-rc1 (2004-07-10 22:00)
1.0-rc2 (2004-11-20 13:44)

而1.0的正式版本是于(2005-01-01 17:28)发布的,所以我猜想项目中用的版本肯定是不是最新的才会出现这样的问题,但如果真是这样也还有一点疑问,displaytag1.0正式版本之前的rc和b版本的JAR文件的文件名都是有标识的,比如rc2的JAR文件全名是displaytag-1.0-rc2.jar,但是我们项目中的JAR文件名称直接就是displaytag-1.0.jar,按理说应该就是正式版本了,  但是确实和正式的版本不一样,现在唯一剩下的一种可能是项目组有人修改过displaytag的源码又重新进行了打包。

还有一个需要注意的地方,就是资源文件在使用native2ascii命令转换之前必须确保原文件(也就是使用中文的文件)的编码是GBK而不是UTF-8,否则转换后还是显示乱码,再者就是转换后的文件的编码应该是ISO-8859-1而不是UTF-8。

你可能感兴趣的:(struts)