做Java开发的时候,常常会出现一些乱码,或者无法正确识别或读取的文件,原因是编码方式的不一致。native2ascii是sun java sdk提供的一个工具。用来将别的文本类文件(比如*.txt,*.ini,*.properties,*.java等等)编码转为Unicode编码。

一.获取native2ascii
  安装了jdk后,假如你是在windows上安装,那么在jdk的安装目录下,会有一个bin目录,其中native2ascii.exe正是。

二.使用方法
命令行格式:

 native2ascii.exe -[options] [inputfile [outputfile]]

其中:
  -[options]表示命令开关,有两个选项可供选择:
    -reverse:用Latin-1或Unicode编码把文件转换成本地编码格式
    -encoding encoding_name:要把文件转换的目标编码
  inputfile:表示输入文件全名。
  outputfile:输出文件名。如果缺少此参数,将输出到控制台。

具体介绍如下:
1.命令行交互方式
  在这种方式下通过手工输入字符实时在Console中实现交互转码。退出按Ctrl+c
  1)本地编码→Latin编码:
   直接敲入native2ascii.exe,程序光标会停在下一行,这时你可以直接敲入想要转换的字符,例如:

 D:jdk1.5.0_06bin>native2ascii.exe
  我们
  u6211u4eec

  2)Latin-1编码→指定编码:
   直接敲入native2ascii.exe -reverse,程序光标会停在下一行,这时你可以直接敲入想要转换的字符,例如:

 D:jdk1.5.0_06bin>native2ascii.exe -reverse
  u6211u4eec
  我们

2.文件转换方式
  在这种方式下通过指定inputfile和outputfile来实现转码。
  1)指定编码→Latin编码:
    例如:

 D:jdk1.5.0_06bin>native2ascii.exe -encoding utf8 abc.txt bcd.txt

  2)Latin-1编码→指定编码:
    例如:

 D:jdk1.5.0_06bin>native2ascii.exe -reverse utf8 abc.txt bcd.txt

常见编码列表:
8859_1             ISO 8859-1
8859_2             ISO 8859-2
8859_3             ISO 8859-3
8859_4             ISO 8859-4
8859_5             ISO 8859-5
8859_6             ISO 8859-6
8859_7             ISO 8859-7
8859_8             ISO 8859-8
8859_9             ISO 8859-9
Big5               Big5 码,繁体中文
CNS11643           CNS 11643,繁体中文
Cp037              美国、加拿大(两种语言,法语)、荷兰、葡萄牙、巴西、澳大利亚
Cp1006             IBM AIX 巴基斯坦(乌尔都语)
Cp1025             IBM 多语种西里尔语:保加利亚、波斯尼亚 、黑塞哥维那、马其顿 (FYR)
Cp1026             IBM Latin-5,土耳其
Cp1046             IBM Open Edition US EBCDIC
Cp1097             IBM 伊朗(波斯语)/波斯
Cp1098             IBM 伊朗(波斯语)/波斯 (PC)
Cp1112             IBM 拉脱维亚,立陶宛
Cp1122             IBM 爱沙尼亚
Cp1123             IBM 乌克兰
Cp1124             IBM AIX 乌克兰
Cp1125             IBM 乌克兰 (PC)
Cp1250             Windows 东欧
Cp1251             Windows 斯拉夫语
Cp1252             Windows Latin-1
Cp1253             Windows 希腊
Cp1254             Windows 土耳其
Cp1255             Windows 希伯莱
Cp1256             Windows 阿拉伯
Cp1257             Windows 波罗的语
Cp1258             Windows 越南语
Cp1381             IBM OS/2, DOS 中华人民共和国 (PRC)
Cp1383             IBM AIX 中华人民共和国 (PRC)
Cp273              IBM 奥地利、德国
Cp277              IBM 丹麦、挪威
Cp278              IBM 芬兰、瑞典
Cp280              IBM 意大利
Cp284              IBM 加泰罗尼亚语/西班牙、拉丁美洲西班牙语
Cp285              IBM 英国、爱尔兰
Cp297              IBM 法国
Cp33722            IBM-eucJP - 日语 (5050 的超集)
Cp420              IBM 阿拉伯
Cp424              IBM 希伯莱
Cp437              MS-DOS 美国、澳大利亚、新西兰、南非
Cp500              EBCDIC 500V1
Cp737              PC 希腊
Cp775              PC 波罗的语
Cp838              IBM 泰国扩展 SBCS
Cp850              MS-DOS Latin-1
Cp852              MS-DOS Latin-2
Cp855              IBM 斯拉夫语
Cp857              IBM 土耳其语
Cp860              MS-DOS 葡萄牙语
Cp861              MS-DOS 冰岛语
Cp862              PC 希伯莱
Cp863              MS-DOS 加拿大法语
Cp864              PC 阿拉伯语
Cp865              MS-DOS 日尔曼语
Cp866              MS-DOS 俄语
Cp868              MS-DOS 巴基斯坦语
Cp869              IBM 现代希腊语
Cp870              IBM 多语种 Latin-2
Cp871              IBM 冰岛语
Cp874              IBM 泰国语
Cp875              IBM 希腊语
Cp918              IBM 巴基斯坦(乌尔都语)
Cp921              IBM 拉脱维亚、立陶宛(AIX, DOS)
Cp922              IBM 爱沙尼亚 (AIX, DOS)
Cp930              与 4370 UDC 混合的日语,5026 的超集
Cp933              与 1880 UDC 混合的韩文,5029 的超集
Cp935              与 1880 UDC 混合的简体中文主机,5031 的超集
Cp937              与 6204 UDC 混合的繁体中文,5033 的超集
Cp939              与 4370 UDC 混合的日语拉丁字母,5035 的超集
Cp942              日语 (OS/2),932 的超集
Cp948              OS/2 中文(台湾),938 超集
Cp949              PC 韩文
Cp950              PC 中文(香港、台湾)
Cp964              AIX 中文(台湾)
Cp970              AIX 韩文
EUCJIS             JIS, EUC 编码、日语
GB2312             GB2312, EUC 编码、简体中文
GBK                GBK, 简体中文
ISO2022CN          ISO 2022 CN, 中文
ISO2022CN_CNS      ISO-2022-CN 形式的 CNS 11643,繁体中文
ISO2022CN_GB       ISO-2022-CN 形式的 GB 2312,简体中文
ISO2022KR          ISO 2022 KR, 韩文
JIS                JIS, 日语
JIS0208            JIS 0208, 日语
KOI8_R             KOI8-R, 俄语
KSC5601            KS C 5601, 韩文
MS874              Windows 泰国语
MacArabic          Macintosh 阿拉伯语
MacCentralEurope Macintosh Latin-2
MacCroatian        Macintosh 克罗地亚语
MacCyrillic        Macintosh 斯拉夫语
MacDingbat         Macintosh Dingbat
MacGreek           Macintosh 希腊语
MacHebrew          Macintosh 希伯莱语
MacIceland         Macintosh 冰岛语
MacRoman           Macintosh 罗马语
MacRomania         Macintosh 罗马尼亚语
MacSymbol          Macintosh 符号
MacThai            Macintosh 泰国语
MacTurkish         Macintosh 土耳其语
MacUkraine         Macintosh 乌克兰语
SJIS               Shift-JIS, 日语
UTF8               UTF-8

native2ascii.exe 是 Java 的一个文件转码工具,是将特殊各异的内容 转为 用指定的编码标准文体形式统一的表现出来,它通常位于 JDK_homebin 目录下,安装好 Java SE 后,可在命令行直接使用 native2ascii 命令进行转码,示例:

native2ascii -encoding 8859_1 c:test.txt c:temp.txt
将 test.txt 文件内容用 8859_1 转码,另存为 temp.txt 文件
格式:native2ascii -[options] [inputfile [outputfile]]

参数选项 options
-reverse:将 Latin-1 或 Unicode 编码转为本地编码
-encoding encoding_name:指定转换时使用的编码
inputfile:要转换的文件
outputfile:转换后的文件

互转(-encoding,非英文内容(如中文)转为编码符 或 编码符之间的转换),
逆转(-reverse,通常是将编码符转为非英文内容,或非英文内容之间的转换),
逆转时被转的文件编码和本地编码需一致,示例:

中文转为 ISO 8859_1 编码后,将 8859_1 码转为中文:
native2ascii -encoding 8859_1 c:a.txt c:b.txt,将 a 用 8859_1 转码,存为 b (8859_1 码)
native2ascii -encoding GBK c:b.txt c:c.txt,将 b 用 GBK 转码,存为 c (GBK 码)
native2ascii -reverse c:c.txt c:d.txt,将 GBK 编码 c 用本地编码转码,存为 d (中文内容)

中文转为 GBK 编码后,将 GBK 码转为中文:
native2ascii -encoding GBK c:a.txt c:b.txt,将 a 用 GBK 转码,存为 b (GBK 码)
native2ascii -reverse c:b.txt c:c.txt,将 GBK 编码 b 用本地编码转码,存为 c (中文内容)

例如struts和struts2中的国际化utf-8的转换方式:
native2ascii -encoding UTF-8 ApplicationResources_zh_src.properties ApplicationResources_zh.properties

[转载]JDK自带的实用工具——native2ascii.exe的更多相关文章

  1. tomcat配置https–采用JDK自带的keytool工具生成证书

    转自:http://blog.csdn.net/huangxinyu_it/article/details/41693633 有关http与https的区别请看<浅谈http与https的区别( ...

  2. ServiceModel 元数据实用工具 (Svcutil.exe)

    ServiceModel 元数据实用工具用于依据元数据文档生成服务模型代码,以及依据服务模型代码生成元数据文档 一.SvcUtil.exe ServiceModel 元数据实用工具可在 Windows ...

  3. 【转载】JDK自带的log工具

    版权声明:本文为Jaiky_杰哥原创,转载请注明出处.This blog is written by Jaiky, reproduced please indicate. https://blog.c ...

  4. jdk 自带命令行工具

    jps工具 虚拟机进程状况工具 工具主要选项 jstat: 虚拟机统计信息监视工具 jinfo: Java配置信息工具 jinfo( Configuration Info for Java) 的作用是 ...

  5. JDK自带VM分析工具jps,jstat,jmap,jconsole

    一.概述 SUN 的JDK中的几个工具,非常好用.秉承着有免费,不用商用的原则.以下简单介绍一下这几种工具.(注:本文章下的所有工具都存在JDK5.0以上版本的工具集里,同javac一样,不须特意安装 ...

  6. IL反编译的实用工具Ildasm.exe

    初识Ildasm.exe——IL反编译的实用工具    https://www.cnblogs.com/yangmingming/archive/2010/02/03/1662307.html   学 ...

  7. 快速访问WCF服务--ServiceModel 元数据实用工具 (Svcutil.exe)

    基本定义 ServiceModel 元数据实用工具用于依据元数据文档生成服务模型代码,以及依据服务模型代码生成元数据文档. SvcUtil.exe ServiceModel 元数据实用工具可在 Win ...

  8. JDK自带反编译工具javap

    在JDK的bin文件夹下,有许多自带工具: javap就是其中的一个,对应为 javap.exe javap可反编译查看Java编译器编译生成的字节码文件, 语法: javap [ options ] ...

  9. 使用JDK自带的keytool工具生成证书

    一.keytool 简介 keytool 是java用于管理密钥和证书的工具,它使用户能够管理自己的公钥/私钥对及相关证书,用于(通过数字签名)自我认证(用户向别的用户/服务认证自己)或数据完整性以及 ...

随机推荐

  1. 【Hutool】工具类之日期时间工具-DateUtil

    日期时间工具类 一.依赖 <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-al ...

  2. 华水开学第一课&微信支付

    由于疫情的延续,导致我们不能及时开学.只能在网上观看华水开学第一课,但是好像正常开学也没有这个哈哈(不记得了) 昨天没有玩到很晚,12点就睡下.大约半个小时睡着了.定了8点的闹钟.起来的时候那是真的困 ...

  3. LNMP架构及应用部署!(重点)

    LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构. WNMP代表的就是:Windows系统下Nginx+MySQL+PHP这种网站服务器架构. WAMP代表的就是: ...

  4. device supports x86 but apk only supports armeabi-v7a问题解决

    我们可以在build.gradle中有ndk这段代码,只要在后面加上“x86”,再sync now一下,就发现可以运行了. ndk { abiFilters "armeabi-v7a&quo ...

  5. PLSQL报错: ORA-12170:TNS connect timeout occurred

    本人的问题已解决,先在安装oracle的服务器上黑窗口输入tnsping,提示说no listener,这是监听服务没有打开. 打开服务后还是不行,最后原因是服务器的网络有防火墙的问题,关掉防火墙连接 ...

  6. Java 中 VO、PO、DTO、BO、POJO、DAO 之间的区别与解释

    转载:https://www.cnblogs.com/hunmeng/p/11298680.html VO value object:值对象 通常用于业务层之间的数据传递,由new创建,由GC回收. ...

  7. 笔记-Python-性能优化

    笔记-Python-性能优化 1.      开始 1.1.    python性能差么? 做一个判断前,先问是不是. python运行效率低是事实. 1.2.    为什么? 原因: Python是 ...

  8. 九 三种Struts2访问Servlet方式总结

    Servlet是单例的,Action是多例的. 多个程序访问Servlet只会创建一个Servlet对象,多个程序访问Action会创建对应的多个Action对象. 跳转页面可以获取对象的属性,说明使 ...

  9. 十一 三种Struts2的数据封装方式,封装页面传递的数据

    Struts2的数据封装:Struts2是一个web层框架,框架是软件的半成品.提供了数据封装的基本功能. 注:Struts2底层(核心过滤器里面的默认栈里面的拦截器,具体见struts-defaul ...

  10. 吴裕雄--天生自然 JAVA开发学习:java使用Eclipel连接数据库

    1:jar可到Mysql官网下载:地址Mysql 连接jar包.:https://dev.mysql.com/downloads/connector/j/如图,在下拉列表框中选择Platform In ...