资源文件对文件内容有严格的要求:只能包含ASCII字符。所以必须将非ASCII字符的内容转换为Unicode代码的表示方式。
一、如果在应用开发时,直接采用Unicode代码编辑资源文件是很不方便的,所以,通常直接使用正常的方式编写资源文件,在测试或部署时再采用工具进行转换。JDK在bin目录下为我们提供了一个完成此功能的native2ascii工具,它可以将中文字符的资源文件转换为Unicode代码格式的文件。
例如,在E:\Unicode目录下有一个resource_zh_CN.properties文件,里面的内容包含中文,文件内容如下:
greeting.common=你好!
greeting.morning=早上好!
greeting.afternoon=下午好!
转换步骤如下:
1、首先找到jdk安装的bin目录,打开命令提示符,如下图
2、输入命令 命令格式:native2ascii [-reverse] [-encoding 编码] [输入文件 [输出文件]]
例如要转换为jbk编码,则输入:native2ascii -encoding gbk E:\unicode\resource_zh_CN.properties
所以转换后的编码如下:
greeting.common=\u4F60\u597D\uFF01
greeting.morning=\u65E9\u4E0A\u597D\uFF01
greeting.afternoon=\u4E0B\u5348\u597D\uFF01
二、开发经验:
1、通过native2ascii命令手工转换资源文件,不但在操作上不方便,转换后资源文件中的属性内容由于采用了ASCII编码,阅读起来也不方便。
2、很多IDE开发工具都有属性编辑器的插件,插件会自动将资源文件内容转换为ASCII形式的编码,同时以正常的方式阅读和编辑资源文件的内容,这给开发和维护带来了很大的便利。
例如在MyEclipse的项目中创建一个和上述文件相同的文件,再Properties中完成编辑
2、完成后切换到Source,发现写的中文自动转换为Unicode编码
MyEclipse中项目默认是GBK编码,可以看出转换后的编码与上面第一种方式转换后的编码相同