Struts2中国际化文件mess.properties用native2ascii进行转换,代码如下
native2ascii mess.properties mess_zh_CN.properties
转换成功后放到项目里面,但是出来的时候却出现了乱码。
将struts.xml的资源文件配置如下
<constant name="struts.custom.i18n.resources" value="mess"/>
<constant name="struts.custom.i18n.encoding" value="utf-8"/>
依次改用utf-8,gbk都不行。
mess.properties文件本身的编码格式是utf-8,而我的操作系统默认的编码格式是GBK。
native2ascii如果没有-encoding选项,则采用操作系统默认的编码格式,也就是GBK。
所以转化后读取出来会出现问题,改用native2ascii -encoding utf-8 mess.properties mess_zh_CN.properties,问题解决。
总结一下:native2ascii对资源文件进行转换之前,必需清楚资源文件本身的编码格式,并用-encoding选项指定源文件编码。
native2ascii mess.properties mess_zh_CN.properties
转换成功后放到项目里面,但是出来的时候却出现了乱码。
将struts.xml的资源文件配置如下
<constant name="struts.custom.i18n.resources" value="mess"/>
<constant name="struts.custom.i18n.encoding" value="utf-8"/>
依次改用utf-8,gbk都不行。
mess.properties文件本身的编码格式是utf-8,而我的操作系统默认的编码格式是GBK。
native2ascii如果没有-encoding选项,则采用操作系统默认的编码格式,也就是GBK。
所以转化后读取出来会出现问题,改用native2ascii -encoding utf-8 mess.properties mess_zh_CN.properties,问题解决。
总结一下:native2ascii对资源文件进行转换之前,必需清楚资源文件本身的编码格式,并用-encoding选项指定源文件编码。