Java工具-----native2ascii

Posted ephemerid

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java工具-----native2ascii相关的知识,希望对你有一定的参考价值。

概述

使用

native2ascii [-option] [inputfile[outputfile]]

  • option 选项
    • -reverse:将Unicode转换为本地编码。
    • -encoding:指定转换编码;未指定时,使用本地编码。
  • inputfile
    输入文件;未指定时,屏幕输入。
  • outputfile
    输出文件;未指定时,屏幕输出。

native2ascii

$ native2ascii
这是一个测试案例123abc
u8fd9u662fu4e00u4e2au6d4bu8bd5u6848u4f8b123abc

native2ascii [inputfile]

$ cat zh_CN.txt
这是一个测试文件
123
abc
$ native2ascii zh_CN.txt
u8fd9u662fu4e00u4e2au6d4bu8bd5u6587u4ef6
123
abc

native2ascii [inputfile[outputfile]]

$ cat zh_CN.txt
这是一个测试文件
123
abc
$ cat zh_CN_output.txt  
$ native2ascii zh_CN.txt zh_CN_output.txt
$ cat zh_CN_output.txt
u8fd9u662fu4e00u4e2au6d4bu8bd5u6587u4ef6
123
abc

native2ascii -encoding GB2312 [inputfile[outputfile]]

$ env | grep LANG
NLS_LANG=AMERICAN_AMERICA.JA16SJISTILDE
LANG=ja_JP.UTF-8
$ cat GB2312.txt
?ˇ??????t-------encoding=GB2312
$ cat GB_encoding_output.txt
$ native2ascii -encoding GB2312 GB2312.txt GB_encoding_output.txt
$ cat GB_encoding_output.txt
u8fd9u662fu4e00u4e2au6d4bu8bd5u6587u4ef6-------encoding=GB2312

由于源文件(GB_encoding_output.txt)的编码与系统本地的编码不一致,所以会显示乱码。

native2ascii -reverse -encoding utf-8 [inputfile[outputfile]]

$ env | grep LANG
NLS_LANG=AMERICAN_AMERICA.JA16SJISTILDE
LANG=ja_JP.UTF-8
$ cat GB_encoding_reverse_output.txt
$ native2ascii -reverse -encoding utf-8 GB_encoding_output.txt GB_encoding_reverse_output.txt
$ cat GB_encoding_reverse_output.txt
这是一个测试文件-------encoding=GB2312

这里例子利用前一个例子结果(GB_encoding_reverse_output.txt),将源文件(GB_encoding_output.txt)中的内容,最后转换为了UTF-8,所以能够在屏幕上正常显示。

小结

从上面几个例子,还可以知道,可以利用该工具转变文件编码,需要注意的是,在转换为Unicode时,编码要与源文件一致,不然可能会产生乱码:

$ env | grep LANG
NLS_LANG=AMERICAN_AMERICA.JA16SJISTILDE
LANG=ja_JP.UTF-8
$ native2ascii -encoding utf-8 GB2312.txt GB_encoding_output.txt
$ native2ascii -reverse -encoding utf-8 GB_encoding_output.txt GB_encoding_reverse_output.txt
$ cat GB_encoding_reverse_output.txt
??????????????-------encoding=GB2312

由于转换为Unicode时,使用的编码与源文件不一致,最后结果便是乱码。



以上是关于Java工具-----native2ascii的主要内容,如果未能解决你的问题,请参考以下文章

JDK自带工具native2ascii

native2ascii工具完全揭密

native2ascii命令详解

JAVA中最方便的Unicode转换方法

Spring 国际化

native2ascii运用