在做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_06\bin>native2ascii.exe
- 我们
- \u6211\u4eec
D:\jdk1.5.0_06\bin>native2ascii.exe
我们
\u6211\u4eec
2)Latin-1编码→指定编码:
直接敲入native2ascii.exe -reverse,程序光标会停在下一行,这时你可以直接敲入想要转换的字符,例如:
- D:\jdk1.5.0_06\bin>native2ascii.exe -reverse
- \u6211\u4eec
- 我们
D:\jdk1.5.0_06\bin>native2ascii.exe -reverse
\u6211\u4eec
我们
2.文件转换方式
在这种方式下通过指定inputfile和outputfile来实现转码。
1)指定编码→Latin编码:
例如:
- D:\jdk1.5.0_06\bin>native2ascii.exe -encoding utf8 abc.txt bcd.txt
D:\jdk1.5.0_06\bin>native2ascii.exe -encoding utf8 abc.txt bcd.txt
2)Latin-1编码→指定编码:
例如:
- D:\jdk1.5.0_06\bin>native2ascii.exe -reverse utf8 abc.txt bcd.txt
D:\jdk1.5.0_06\bin>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
阅读(1480) | 评论(0) | 转发(0) |