使用java的native2ascii工具命令来转换编码gbk,gb2312,utf-8【转】

native2ascii的用法
Sun也太吝啬了,也不多给点使用例子.
它的帮助只有:用法:native2ascii [-reverse] [-encoding 编码] [输入文件 [输出文件]]

下边是网上找的说明,说的不是很清楚:
----------------------------------------------------------------------------------
说明

Java 编译器和其它 Java 工具只能处理含有 Latin-1 和/或 Unicode 编码(\?
记号)字符的文件。native2ascii 将含有其它字符编码的文件转换成含 Latin-1 和/或
Unicode 编码字符的文件。

若省略 outputfile,则使用标准输出设备输出。此外,如果也省略
inputfile,则使用标准输入设备输入。

选项

-reverse 执行相反的操作:将含 Latin-1 和/或 Unicode
编码字符的文件转换成含本地编码字符的文件:

-encoding encoding_name 指定转换程序使用的编码名称。预设的编码从系统属性
file.encoding 中得到。encoding_name 字符串必须是下表第一栏所示的字符串。

-------------------------------------------------------------------------------------

--以下是我实践后总结的--
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进制的文件,之后执行第一步.


下面是我自己写的gbk--->UTF-8的批处理

##########################################################

echo start

FOR /F "delims=" %%i IN ('dir /b /a-d /s "*.java"') DO (

    native2ascii -reverse -encoding utf-8 %%i %%i
    echo %%i
    )
echo finished
pause


###########################################

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/rainv/archive/2007/04/28/1588096.aspx


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值