native2ascii用法解析

03-06

native2ascii是sun java sdk提供的一个工具。用来将别的文本类文件(比如*.txt,*.ini,*.properties,*.java等等)编码转为Unicode编码。为什么要进行转码,原因在于程序的国际化。

用法:native2ascii [-reverse] [-encoding 编码] [输入文件 [输出文件]]

-[options]:表示命令开关,有两个选项可供选择
-reverse:将Unicode编码转为本地或者指定编码,不指定编码情况下,将转为本地编码。
-encoding encoding_name:转换为指定编码,encoding_name为编码名称。
[inputfile [outputfile]]
inputfile:表示输入文件全名。
outputfile:输出文件名。如果缺少此参数,将输出到控制台

native2ascii命令的用法:

只有一种类型编码,可以说文本文件编码和文本内容编码指的是同一个意思。
建议理解成文本文件编码(看第四).

结论:
1.这里说的16进制的字符是本地编码的字符的16进制字符表示。
2.utf-8编码(有本地字符)和ANSI编码(有本地字符)的文件转成ANSI编码的本地字符的16进制字符表示是一样的。
3.utf-8编码(有本地字符)的文件要转成ANSI编码的(本地字符)的文件,要先转成ANSI编码的16进制字符文件,之后再转成ANSI编码的本地字符的文件。
4.前提是这个16进制的字符必须代表一个本地字符.

疑问:难道没有转换utf-8编码的本地字符文件转为utf-8编码的16进制字符表示的方法?!它和ANSI编码表示的
16进制一样吗?

一、把ANSI编码的本地字符文件转成ANSI编码的16进制文件再转回来。
两步走:
1.native2ascii -encoding gbk [ANSI编码文件,显示ANSI本地字符] [ANSI编码文件,即显示ANSI本地编码字符的十六进制字符]
2.native2ascii -reverse [ANSI编码文件,即显示ANSI本地编码字符的十六进制字符] [ANSI编码文件,即ANSI本地字符]

二、把ANSI编码的本地字符(或16进制字符)文件转成utf-8编码的本地字符文件。
>native2ascii -reverse -encoding utf-8 [ANSI编码文件,即ANSI本地字符] [UTF-8编码文件]
>native2ascii -reverse -encoding utf-8 [ANSI编码文件,即显示ANSI本地编码字符的十六进制字符] [UTF-8编码文件]

三、把utf编码的文件(显示本地字符),转成ANSI编码的文件。
两步走:
1.先转成ANSI编码的十六进制字符文件
native2ascii -encoding utf-8 [UTF-8编码文件] [ANSI编码文件,即显示ANSI本地编码字符的十六进制字符]
2.再转成ANSI编码的本地字符文件。
native2ascii -reverse [ANSI编码文件,即显示ANSI本地编码字符的十六进制字符] [ANSI编码文件,即ANSI本地字符]

四、如果是utf编码的文件,有本地字符的16进制的话,想转成ANSI编码的本地字符表示。
用native2ascii的话是不行的.
只能用记事本把文件编码类型另存为ANSI编码的16进制的文件,之后执行第一步.

这个太麻烦了,能不用时就不要用