activetoascii国际化中文转换it 分类:java
在做Java开发的时候,常常会出现一些乱码,或者无法正确识别或读取的文件,原因是编码方式的不一致。native2ascii是sun java sdk提供的一个工具。用来将别的文本类文件(比如*.txt,*.ini,*.properties,*.java等等)编码转为Unicode编码。
一.获取native2ascii
  安装了jdk后,假如你是在windows上安装,那么在jdk的安装目录下,会有一个bin目录,其中native2ascii.exe正是。

二.使用方法
命令行格式:

native2ascii.exe -[options] [inputfile [outputfile]]
其中:
  -[options]表示命令开关,有两个选项可供选择:
    -reverse:用Latin-1或Unicode编码把文件转换成本地编码格式
    -encoding encoding_name:要把文件转换的目标编码
  inputfile:表示输入文件全名。
  outputfile:输出文件名。如果缺少此参数,将输出到控制台。

具体介绍如下:
1.命令行交互方式
  在这种方式下通过手工输入字符实时在Console中实现交互转码。退出按Ctrl+c
  1)本地编码→Latin编码:
   直接敲入native2ascii.exe,程序光标会停在下一行,这时你可以直接敲入想要转换的字符,例如:

D:\jdk1.5.0_06\bin>native2ascii.exe
  我们
  \u6211\u4eec
  2)Latin-1编码→指定编码:
   直接敲入native2ascii.exe -reverse,程序光标会停在下一行,这时你可以直接敲入想要转换的字符,例如:

D:\jdk1.5.0_06\bin>native2ascii.exe -reverse
  \u6211\u4eec
  我们
2.文件转换方式
  在这种方式下通过指定inputfile和outputfile来实现转码。
  1)指定编码→Latin编码:
    例如:

D:\jdk1.5.0_06\bin>native2ascii.exe -encoding utf8 abc.txt bcd.txt
  2)Latin-1编码→指定编码:
    例如:

D:\jdk1.5.0_06\bin>native2ascii.exe -reverse utf8 abc.txt bcd.txt

native2ascii.exe 是 Java 的一个文件转码工具,是将特殊各异的内容转为 用指定的编码标准文体形式统一的表现出来,它通常位于 JDK_home\bin 目录下,安装好 Java SE 后,可在命令行直接使用 native2ascii 命令进行转码,示例:

native2ascii -encoding 8859_1 c:\test.txt c:\temp.txt
将 test.txt 文件内容用 8859_1 转码,另存为 temp.txt 文件
格式:native2ascii -[options] [inputfile [outputfile]]

参数选项 options
-reverse:将 Latin-1 或 Unicode 编码转为本地编码
-encoding encoding_name:指定转换时使用的编码
inputfile:要转换的文件
outputfile:转换后的文件

互转(-encoding,非英文内容(如中文)转为编码符 或 编码符之间的转换),
逆转(-reverse,通常是将编码符转为非英文内容,或非英文内容之间的转换),
逆转时被转的文件编码和本地编码需一致,示例:

中文转为 ISO 8859_1 编码后,将 8859_1 码转为中文:
native2ascii -encoding 8859_1 c:\a.txt c:\b.txt,将 a 用 8859_1 转码,存为 b (8859_1 码)
native2ascii -encoding GBK c:\b.txt c:\c.txt,将 b 用 GBK 转码,存为 c (GBK 码)
native2ascii -reverse c:\c.txt c:\d.txt,将 GBK 编码 c 用本地编码转码,存为 d (中文内容)

中文转为 GBK 编码后,将 GBK 码转为中文:
native2ascii -encoding GBK c:\a.txt c:\b.txt,将 a 用 GBK 转码,存为 b (GBK 码)
native2ascii -reverse c:\b.txt c:\c.txt,将 GBK 编码 b 用本地编码转码,存为 c (中文内容)

例如struts和struts2中的国际化utf-8的转换方式:
native2ascii -encoding UTF-8 ApplicationResources_zh_src.properties ApplicationResources_zh.properties