在struts中怎样使property文件支持中文

zi_feng 2004-08-05 04:18:21
如题
...全文
205 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoxi777 2004-08-06
  • 打赏
  • 举报
回复
Struts的ResourceBundle的中文问题的罪魁祸首是java.util.Properties有问题,与Struts本身无关。因为Struts的PropertyMessageResources用java.util.Properties来读入属性文件。你如果有兴趣可以打开jdk带的源代码看看java.util.Properties的load方法的第一行:
BufferedReader in = new BufferedReader(new InputStreamReader(inStream, "8859_1"));
居然是以8859_1编码来读入所有的属性文件。
HITZXL 2004-08-06
  • 打赏
  • 举报
回复
戚爱斌 2004-08-06
  • 打赏
  • 举报
回复
要有对应的ApplicationResources_zh_CN.property文件

properties文件中如果有中文,必须用native2asc工具进行转码
XIHSHI 2004-08-06
  • 打赏
  • 举报
回复
转换编码
awaysrain 2004-08-06
  • 打赏
  • 举报
回复
这篇文章有介绍http://dev.csdn.net/develop/article/25/25602.shtm
xiaoxi777 2004-08-06
  • 打赏
  • 举报
回复
可以的,不过我不是直接改JDK的源码,因为担心JDK重新打包麻烦,而是写了一个类来替代Propertiess,因为没有足够的时间,所以只是继承了java.util.Properties,把load的第一行改为BufferedReader in = new BufferedReader(new InputStreamReader(inStream));
然后创建两个类分别用来代替PropertyMessageResources和PropertyMessageResourcesFactory。也只是简单的改了PropertyMessageResources的loadLocale方法中Properties props = new Properties();这一行。然后分别在web.xml的action servlet的配置中加入factory参数,值设为改过的PropertyMessageResourcesFactory,在struts的配置文件中把message-resources的factory属性设为改过的PropertyMessageResourcesFactory,就彻底解决了读属性文件的中文问题。不需要用native2ascii先转换属性文件。

如果你可以重新编译java.util.Properties的话,当然更简单。
zi_feng 2004-08-06
  • 打赏
  • 举报
回复
to xiaoxi777(小溪):
我看了,的确如此。
那可不可以修改java.util.Properties,编译后重新打包呢
minghuitian 2004-08-05
  • 打赏
  • 举报
回复
up
blackrye 2004-08-05
  • 打赏
  • 举报
回复
转换一下编码
native2ascii ApplicationResources.properties ApplicationResources_cn.properties
//ApplicationResources.properties 为有中文的property文件
朋友别哭 2004-08-05
  • 打赏
  • 举报
回复
关注

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧