概述
- native2ascii.exe位于
%JAVA_HOME/bin
目录下,所以要使用,得先安装JDK。 - 该工具用来将本地编码转换为Unicode,英文字母、阿拉伯数字不会转化。
- 官方文档:https://docs.oracle.com/javase/8/docs/technotes/tools/windows/native2ascii.html
使用
native2ascii [-option] [inputfile[outputfile]]
- option 选项
- -reverse:将Unicode转换为本地编码。
- -encoding:指定转换编码;未指定时,使用本地编码。
- inputfile
输入文件;未指定时,屏幕输入。 - outputfile
输出文件;未指定时,屏幕输出。
native2ascii
$ native2ascii
这是一个测试案例123abc
\u8fd9\u662f\u4e00\u4e2a\u6d4b\u8bd5\u6848\u4f8b123abc
native2ascii [inputfile]
$ cat zh_CN.txt
这是一个测试文件
123
abc
$ native2ascii zh_CN.txt
\u8fd9\u662f\u4e00\u4e2a\u6d4b\u8bd5\u6587\u4ef6
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
\u8fd9\u662f\u4e00\u4e2a\u6d4b\u8bd5\u6587\u4ef6
123
abc
native2ascii -encoding GB2312 [inputfile[outputfile]]
$ env | grep LANG
NLS_LANG=AMERICAN_AMERICA.JA16SJISTILDE
LANG=ja_JP.UTF-8
$ cat GB2312.txt
֢ˇһ¸?Վļþ-------encoding=GB2312
$ cat GB_encoding_output.txt
$ native2ascii -encoding GB2312 GB2312.txt GB_encoding_output.txt
$ cat GB_encoding_output.txt
\u8fd9\u662f\u4e00\u4e2a\u6d4b\u8bd5\u6587\u4ef6-------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时,使用的编码与源文件不一致,最后结果便是乱码。
转载于:https://www.cnblogs.com/ephemerid/p/10271793.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/39806.html