【Java基础专题】编码与乱码(07)---native2ascii命令的用法

【1】native2ascii命令的语法:

native2ascii -[options] [inputfile [outputfile]]

【2】native2ascii命令的功能:

C:\Documents and Settings\Administrator>type E:\Temp\gbk_content.txt
abc123中文

C:\Documents and Settings\Administrator>native2ascii E:\Temp\gbk_content.txt
abc123\u4e2d\u6587

可以看到该命令对于英文字符,数字不会转换而是直接输出,而对于每个中文字符则转换成以\u开头的4个16进制数字。其中4e2d是"中"字,6587是"文"字。我们并没有指定-encoding encoding_name,那么默认将转换成unicode,并将结果输出到控制台。

下面我们来看看如何把unicode字符转换成肉眼可以识别的字符串:
C:\Documents and Settings\Administrator>native2ascii -reverse -encoding GBK E:\Temp\unicode_output.txt
abc123中文

C:\Documents and Settings\Administrator>native2ascii -reverse E:\Temp\unicode_output.txt
abc123中文

通常情况下,如果要进行字符的逆转换,-encoding encoding_name这个参数都会配合-reverse出现。在上面的例子中因为本地系统是中文操作系统,所以即便没有指定-encoding也可以正确地从unicode ---》GBK。如果是在英文平台下由于默认字符集是ISO-8859-1,那么这个时候如果不指定则转换出来的将是?了。

native2ascii命令可以帮助我们做两件事:

 ①把文件的字符转换成unicode字符输出到控制台或文件
 ②把文件中的unicode字符转换成默认或指定编码的字符

【3】native2ascii命令的选项使用:

native2ascii命令有两个选项可以配合使用
 ①-reverse:将Unicode编码转为本地或者指定编码,不指定编码情况下,将转为本地编码
 ②-encoding encoding_name:转换为指定编码,encoding_name为编码名称

来看下面的例子:

你可能感兴趣的:(native2ascii)