??xml version="1.0" encoding="utf-8" standalone="yes"?> 一、?/span>native2ascii命o使资源文件支持中?/span> 重新启动Tomcat后,?/span>IE中输入如下的URLQ?br />
当出C息输入界面后Q点?#8220;提交”按钮Q将会显C如?/span>1的效果?br />
也许很多读者会感到奇怪。我们已l将属性文件的~码格式修改?/span>UTF-8?/span>GBK了,而且所输入的中文在MyEclipse中也能正常显C,q且面中的讄的编码格式也和属性文件中的编码格式一_那么Z么会输出q呢? 下面的内ҎCZErrorDescription.properties文g被{换了~码格式后的内容Q?/span> 按着上面所q的方式q行E序Q需要重?/span>Tomcat或重新发?/span>samplesE序Q以便对属性文件的修改生效Q,׃得到如图2所C的昄效果?br />
q个插g在编辑属性文件时的方式和Eclipse内嵌的属性编辑器cM。在下蝲插g压羃包后Q将其解压,?/span>features?/span>plugins两个目录复制?/span><MyEclipse安装目录>"eclipse目录中即可。用Properties Editor插g~辑属性文件的界面如图3所C?br />
2. JInto插g q两个插仉可以很好的满编辑属性文件的需要,而且基本功能相同。读者可以根据自q喜好选择使用其中的Q何一个插件来~辑属性文件?/span>
从上文章中?/span>ErrorDescription.properties文g中可以看到所有的错误提示信息都是英文的。在客户端显C些英文信息没有Q何问题。但如果这些英文错误提CZ息改成相应的中错误提CZ息又会如何呢Q?/span>
在修改之前,先让我们选中ErrorDescription.properties文gQ单d键,在右键菜单中选择?/span>Properties】菜单项Q打开属性设|对话框Q在右侧所列的目中选择?/span>Resource】。看一下右下角?#8220;Text file encoding”的编码格式,如果~码格式不是UTF-8?/span>GBKQ也包括GB2312?/span>GB18030Q,请将~码格式修改?/span>UTF-8?/span>GBKQ否则无法?/span>MyEclipse的属性编辑器输入中文。在讄完属性文件的~码格式后,?/span>ErrorDescription.properties文g的内Ҏ着该文件的英文版所CZҎ中文提示信息?br />
中文版的ErrorDescription.properties
error.password.blank = 密码不能为空.
error.password1.confirmation = 密码不匹?
error.email.blank = Email不能为空
error.email.invalid = 不是一个正的email地址
http://localhost:8080/samples/simpleValidation.jsp
?
产生q个问题的原因要?/span>Java对各U类型的文g的处理方式上说v?/span>Java在处?/span>*.java文gӞ无论*.java文g的编码格式是UTF-8q是GBK。在使用javac.exe~译Ӟ都会其转换?/span>UCS-2~码格式。因此,*.java文g׃会出Cؕ码。?/span>Java在处理属性文件时Q只能处?/span>ISO 8859-1(也称?/span>latin-1?#8220;西欧语言”)?/span>UCS-2Q?/span>\uxxxx格式Q编码格式。因此,如果在属性文件中含有其他~码格式的字W,?/span>GBKQ?/span>Java仍然会按着ISO 8859-1~码格式来解释这些字W(如果遇到?/span>"u开头的字符Q就会按着UCS-2~码格式处理Q,所以就会出现图1所C的昄效果?br />
解决q个问题的方法也很简单,?/span>JDK中提供了一?/span>native2ascii.exe命oQ在<JDK安装目录>"bin目录中)Q这个命令用来将属性文件中的非ISO 8859-1格式的字W{换成\uxxxx格式?/span>UCS-2~码格式。如?/span>GBK~码?#8220;用户”׃被{换成UCS-2~码格式?#8220;\u7528\u6237”?/span>
我们可以使用如下的命令{?/span>ErrorDescription.properties文g的编码格式:
<JDK安装目录>\bin\native2ascii ErrorDescription.properties ErrorDescription.properties
使用上面的命令将覆盖旧的ErrorDescription.properties文gQ如果读者想保留旧的属性文Ӟ可以?/span>native2ascii.exe的第二个命o行参数换成其他的文g名,如下面命令所C:
<JDK安装目录>\bin\native2ascii ErrorDescription.properties newDescription.properties
被{换了~码格式后的ErrorDescription.properties
error.password.blank = \u5bc6\u7801\u4e0d\u80fd\u4e3a\u7a7a.
error.password1.confirmation = \u5bc6\u7801\u4e0d\u5339\u914d.
error.email.blank = Email\u4e0d\u80fd\u4e3a\u7a7a
error.email.invalid = \u4e0d\u662f\u4e00\u4e2a\u6b63\u786e\u7684email\u5730\u5740
?
虽然上面的方法可以很好的解决Java属性文件的q问题Q但是这U方式ƈ不方ѝ因此,每次修改属性文件后Q都要?/span>native2ascii.exe命o对被修改的属性文件进行编码{换。在本节介l两个专门用来编?/span>Java属性文件的Eclipse插g。通过使用q两个插Ӟ可以无需使用native2ascii.exe命o可以很好地处理?/span>ISO 8859-1~码格式的字W?/span>
1. Properties Editor插g
q个插g可以?/span>http://sourceforge.jp/projects/propedit/下蝲。它分ؓ三个版本Q独立运行的版本?/span>JBuilder版本?/span>Eclipse版本?/span>
?
q个插g可以?/span>http://www.guh-software.de/jinto.html下蝲。它的基本功能和Properties Editor插gcMQ只是以表格形式~辑属性文Ӟ如图4所C?br />
?
?
]]>
注:千万不要攑ֈ包内Q这样会出现错误提示Q?/span>
log4j:WARN No appenders could be found for logger (aa.Hello).
log4j:WARN Please initialize the log4j system properly.
其中Hello?/span>java文g名,?/span>aa是文件所在的目录?/span>