1. native2ascii.exe的介绍:
native2ascii是sun java sdk提供的一个转码工具, 用来将别的文本类文件(比如 *.txt, *.ini, *.properties, *.java 等等)编码转为Unicode编码。
2. 如何获取 native2ascii.exe?
安装了jdk后,假如你是在windows上安装,那么在jdk的安装目录下,会有一个bin目录, 该目录下就有我们所需要的native2ascii.exe 工具。
3. native2ascii.exe使用方法:
命令的语法格式:
native2ascii -[options] [inputfile [outputfile]]
说明:
-[options]:表示命令开关,有两个选项可供选择
-reverse:将Unicode编码转为本地或者指定编码,不指定编码情况下,将转为本地编码。
-encoding encoding_name:转换为指定编码,encoding_name为编码名称。
[inputfile [outputfile]]
inputfile:表示输入文件全名。
outputfile:输出文件名。如果缺少此参数,将输出到控制台。
举例: 把需要进行国际化的文件(如下图)拷贝到 C:\Program Files\Java\jdk1.6.0_31\bin 目录下, 应用native2ascii.exe工具进行转码。
通过cmd命令进入DOS命令窗口进行如下操作:
通过native2ascii命令转码成功后,如下图:
备注:native2ascii.exe是一个应用比较简单的转码工具,并且转码是可逆的。
试试如下命令:
native2ascii -reverse new.txt yan.txt
结果:
native2ascii -encoding gbk old.txt new.txt
结果:

使用native2ascii实现国际化及不同平台的移植
对于不同编码,一直以来都是一个问题,对于我们来说就是中文乱码的问题,这是个什么学JAVA的人都会问上并遇上N次的问题,在编码C/S的JSP的程序的时候也会遇到,我们可以采用过滤器的方式,实现统一编码,以使其不会出现乱码,但是有些时候却又不适合采用过滤器,如将WINDOWS编写的JAVA程序拿到LINUX或者是UNIX系统上,多半是乱码,并且如果不熟悉或者是身边没有这些系统的高手,只有摇头叹头了。
现在有了这个东西,可以将其它非UNICODE编码转换成UNICODE的形式,移植到任何系统上都不会出现乱码的问题了,这个小程序在在JDK的bin目录下,使用语法是:
native2ascii [-reverse] [-encoding 编码] [输入文件 [输出文件]]
其中的-reverse是UNICDOE为当前系统所对应的编码,"-encoding 编码"表示将当前系统的指定编码转换为unicode,这个选项可以省略,默认为当前系统对应的编码,输入文件为源文件,输出文件是目标文件,如有一个test.properties,其中的内容为:
#This is a test
test=这是测试的中文原文
采用命令:native2ascii -encoding GBK test.properties testunicode.properties执行后,test
unicode.properties的内容如:
#This is a test
test=/u8fd9/u662f/u6d4b/u8bd5/u7684/u4e2d/u6587/u539f/u6587
移植到那个平台都不会变了。
再执行:native2ascii -reverse testunicode.properties test2.properties
可以看到test2.properties的内容为:
#This is a test
test=这是测试的中文原文
又还原为原来的编码了。
如果我们只有命令行打入命令native2ascii,这是系统会等你输入文字,然后在你按回车的时候以unicode回显,这种情况适合单个字符的转译。
native2ascii唯一不足的就是不能够对对整个目录进行统一编译,如果需要转译的文件比较多,得自己写一个循环文件了,总的来说已经不错了。