JDK 转码工具 native2ascii 的使用

本文介绍如何使用native2ascii.exe工具将文本文件编码转换为Unicode编码,适用于不同操作系统之间的文件移植,解决中文乱码问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转码工具 native2ascii.exe 的使用方法 

1. native2ascii.exe的介绍:
native2ascii是sun java sdk提供的一个转码工具, 用来将别的文本类文件(比如 *.txt, *.ini, *.properties, *.java 等等)编码转为Unicode编码。

2. 如何获取 native2ascii.exe?
安装了jdk后,假如你是在windows上安装,那么在jdk的安装目录下,会有一个bin目录, 该目录下就有我们所需要的native2ascii.exe 工具。

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

举例: 把需要进行国际化的文件(如下图)拷贝到 C:\Program Files\Java\jdk1.6.0_31\bin 目录下, 应用native2ascii.exe工具进行转码。

 通过cmd命令进入DOS命令窗口进行如下操作:

   

 

通过native2ascii命令转码成功后,如下图:

 

备注:native2ascii.exe是一个应用比较简单的转码工具,并且转码是可逆的。
试试如下命令:
native2ascii -reverse new.txt yan.txt
结果:

 

 

 

native2ascii -encoding gbk  old.txt   new.txt

结果:


 

 

使用native2ascii实现国际化及不同平台的移植

对于不同编码,一直以来都是一个问题,对于我们来说就是中文乱码的问题,这是个什么学JAVA的人都会问上并遇上N次的问题,在编码C/S的JSP的程序的时候也会遇到,我们可以采用过滤器的方式,实现统一编码,以使其不会出现乱码,但是有些时候却又不适合采用过滤器,如将WINDOWS编写的JAVA程序拿到LINUX或者是UNIX系统上,多半是乱码,并且如果不熟悉或者是身边没有这些系统的高手,只有摇头叹头了。

现在有了这个东西,可以将其它非UNICODE编码转换成UNICODE的形式,移植到任何系统上都不会出现乱码的问题了,这个小程序在在JDK的bin目录下,使用语法是:

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

其中的-reverse是UNICDOE为当前系统所对应的编码,"-encoding 编码"表示将当前系统的指定编码转换为unicode,这个选项可以省略,默认为当前系统对应的编码,输入文件为源文件,输出文件是目标文件,如有一个test.properties,其中的内容为:

#This is a test
test=这是测试的中文原文

采用命令:native2ascii -encoding GBK test.properties testunicode.properties执行后,test

unicode.properties的内容如:

#This is a test
test=/u8fd9/u662f/u6d4b/u8bd5/u7684/u4e2d/u6587/u539f/u6587

移植到那个平台都不会变了。

再执行:native2ascii -reverse testunicode.properties test2.properties

可以看到test2.properties的内容为:

#This is a test
test=这是测试的中文原文

又还原为原来的编码了。

如果我们只有命令行打入命令native2ascii,这是系统会等你输入文字,然后在你按回车的时候以unicode回显,这种情况适合单个字符的转译。

native2ascii唯一不足的就是不能够对对整个目录进行统一编译,如果需要转译的文件比较多,得自己写一个循环文件了,总的来说已经不错了。

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值