java native2ascii的用法介绍

    xiaoxiao2021-03-25  148

    将非Unicode编码字符转化为Unicode编码的字符,即国际化。

    语法:native2ascii [options] [inputfile [outputfile]]

    描述:如果outputfile没有指定,标准输出将用于结果输出;如果inputfile没有指定,标准输入设备将用于输入。

    参数 -reverse 使用该参数将Unicode编码字符转换为本地编码字符

    -encoding encoding_name  用于指定转化时使用的字符编码。默认编码从系统属性file.encoding获取。后面的表格式字符编码,指定encoding_name使用表格第一栏。

    -Joption 该参数一般无需使用,用于指定Java虚拟机的启动参数。例如:-J-Xms48m设置虚拟机启动时分配内存为48M 。

    Example1: native2ascii test.txt test_unicode.txt

    test.txt文件内容:native2ascii测试

    test_unicode.txt文件内容:native2asciiu6d4bu8bd5

    Example2: native2ascii test_unicode.txt test_gbk.txt -reverse

    test_gbk.txt内容:native2ascii测试

    Basic Encoding Set (contained in lib/rt.jar) Supported by java.nio, java.io and java.lang APIs

    Canonical Name for java.nio API

    Canonical Name for java.io and java.lang API

    Description

    US-ASCII

    ASCII

    American Standard Code for Information Interchange

    windows-1250

    Cp1250

    Windows Eastern European

    windows-1251

    Cp1251

    Windows Cyrillic

    windows-1252

    Cp1252

    Windows Latin-1

    windows-1253

    Cp1253

    Windows Greek

    windows-1254

    Cp1254

    Windows Turkish

    windows-1257

    Cp1257

    Windows Baltic

    ISO-8859-1

    ISO8859_1

    ISO 8859-1, Latin Alphabet No. 1

    ISO-8859-2

    ISO8859_2

    Latin Alphabet No. 2

    ISO-8859-4

    ISO8859_4

    Latin Alphabet No. 4

    ISO-8859-5

    ISO8859_5

    Latin/Cyrillic Alphabet

    ISO-8859-7

    ISO8859_7

    Latin/Greek Alphabet

    ISO-8859-9

    ISO8859_9

    Latin Alphabet No. 5

    ISO-8859-13

    ISO8859_13

    Latin Alphabet No. 7

    ISO-8859-15

    ISO8859_15

    Latin Alphabet No. 9

    KOI8-R

    KOI8_R

    KOI8-R, Russian

    UTF-8

    UTF8

    Eight-bit UCS Transformation Format

    UTF-16

    UTF-16

    Sixteen-bit UCS Transformation Format, byte order identified by an optional byte-order mark

    UTF-16BE

    UnicodeBigUnmarked

    Sixteen-bit Unicode Transformation Format, big-endian byte order

    UTF-16LE

    UnicodeLittleUnmarked

    Sixteen-bit Unicode Transformation Format, little-endian byte order

    Not available

    UnicodeBig

    Sixteen-bit Unicode Transformation Format, big-endian byte order, with byte-order mark

    Not available

    UnicodeLittle

    Sixteen-bit Unicode Transformation Format, little-endian byte order, with byte-order mark

    Extended Encoding Set (contained in lib/charsets.jar) Supported by java.nio, java.io and java.lang APIs

    Canonical Name for java.nio API

    Canonical Name for java.io and java.lang API

    Description

    windows-1255

    Cp1255

    Windows Hebrew

    windows-1256

    Cp1256

    Windows Arabic

    windows-1258

    Cp1258

    Windows Vietnamese

    ISO-8859-3

    ISO8859_3

    Latin Alphabet No. 3

    ISO-8859-6

    ISO8859_6

    Latin/Arabic Alphabet

    ISO-8859-8

    ISO8859_8

    Latin/Hebrew Alphabet

    windows-31j

    MS932

    Windows Japanese

    EUC-JP

    EUC_JP

    JISX 0201, 0208 and 0212, EUC encoding Japanese

    x-EUC-JP-Linux

    EUC_JP_LINUX

    JISX 0201, 0208 , EUC encoding Japanese

    Shift_JIS

    SJIS

    Shift-JIS, Japanese

    ISO-2022-JP

    ISO2022JP

    JIS X 0201, 0208, in ISO 2022 form, Japanese

    x-mswin-936

    MS936

    Windows Simplified Chinese

    GB18030

    GB18030

    Simplified Chinese, PRC standard

    x-EUC-CN

    EUC_CN

    GB2312, EUC encoding, Simplified Chinese

    GBK

    GBK

    GBK, Simplified Chinese

    ISCII91

    ISCII91

    ISCII91 encoding of Indic scripts

    x-windows-949

    MS949

    Windows Korean

    EUC-KR

    EUC_KR

    KS C 5601, EUC encoding, Korean

    ISO-2022-KR

    ISO2022KR

    ISO 2022 KR, Korean

    x-windows-950

    MS950

    Windows Traditional Chinese

    x-MS950-HKSCS

    MS950_HKSCS

    Windows Traditional Chinese with Hong Kong extensions

    x-EUC-TW

    EUC_TW

    CNS11643 (Plane 1-3), EUC encoding, Traditional Chinese

    Big5

    Big5

    Big5, Traditional Chinese

    Big5-HKSCS

    Big5_HKSCS

    Big5 with Hong Kong extensions, Traditional Chinese

    TIS-620

    TIS620

    TIS620, Thai

    Extended Encoding Set (contained in lib/charsets.jar) Supported by java.io and java.lang APIs

    Canonical Name

    Description

    Big5_Solaris

    Big5 with seven additional Hanzi ideograph character mappings for the Solaris zh_TW.BIG5 locale

    Cp037

    USA, Canada (Bilingual, French), Netherlands, Portugal, Brazil, Australia

    Cp273

    IBM Austria, Germany

    Cp277

    IBM Denmark, Norway

    Cp278

    IBM Finland, Sweden

    Cp280

    IBM Italy

    Cp284

    IBM Catalan/Spain, Spanish Latin America

    Cp285

    IBM United Kingdom, Ireland

    Cp297

    IBM France

    Cp420

    IBM Arabic

    Cp424

    IBM Hebrew

    Cp437

    MS-DOS United States, Australia, New Zealand, South Africa

    Cp500

    EBCDIC 500V1

    Cp737

    PC Greek

    Cp775

    PC Baltic

    Cp838

    IBM Thailand extended SBCS

    Cp850

    MS-DOS Latin-1

    Cp852

    MS-DOS Latin-2

    Cp855

    IBM Cyrillic

    Cp856

    IBM Hebrew

    Cp857

    IBM Turkish

    Cp858

    Variant of Cp850 with Euro character

    Cp860

    MS-DOS Portuguese

    Cp861

    MS-DOS Icelandic

    Cp862

    PC Hebrew

    Cp863

    MS-DOS Canadian French

    Cp864

    PC Arabic

    Cp865

    MS-DOS Nordic

    Cp866

    MS-DOS Russian

    Cp868

    MS-DOS Pakistan

    Cp869

    IBM Modern Greek

    Cp870

    IBM Multilingual Latin-2

    Cp871

    IBM Iceland

    Cp874

    IBM Thai

    Cp875

    IBM Greek

    Cp918

    IBM Pakistan (Urdu)

    Cp921

    IBM Latvia, Lithuania (AIX, DOS)

    Cp922

    IBM Estonia (AIX, DOS)

    Cp930

    Japanese Katakana-Kanji mixed with 4370 UDC, superset of 5026

    Cp933

    Korean Mixed with 1880 UDC, superset of 5029

    Cp935

    Simplified Chinese Host mixed with 1880 UDC, superset of 5031

    Cp937

    Traditional Chinese Host miexed with 6204 UDC, superset of 5033

    Cp939

    Japanese Latin Kanji mixed with 4370 UDC, superset of 5035

    Cp942

    IBM OS/2 Japanese, superset of Cp932

    Cp942C

    Variant of Cp942

    Cp943

    IBM OS/2 Japanese, superset of Cp932 and Shift-JIS

    Cp943C

    Variant of Cp943

    Cp948

    OS/2 Chinese (Taiwan) superset of 938

    Cp949

    PC Korean

    Cp949C

    Variant of Cp949

    Cp950

    PC Chinese (Hong Kong, Taiwan)

    Cp964

    AIX Chinese (Taiwan)

    Cp970

    AIX Korean

    Cp1006

    IBM AIX Pakistan (Urdu)

    Cp1025

    IBM Multilingual Cyrillic: Bulgaria, Bosnia, Herzegovinia, Macedonia (FYR)

    Cp1026

    IBM Latin-5, Turkey

    Cp1046

    IBM Arabic - Windows

    Cp1097

    IBM Iran (Farsi)/Persian

    Cp1098

    IBM Iran (Farsi)/Persian (PC)

    Cp1112

    IBM Latvia, Lithuania

    Cp1122

    IBM Estonia

    Cp1123

    IBM Ukraine

    Cp1124

    IBM AIX Ukraine

    Cp1140

    Variant of Cp037 with Euro character

    Cp1141

    Variant of Cp273 with Euro character

    Cp1142

    Variant of Cp277 with Euro character

    Cp1143

    Variant of Cp278 with Euro character

    Cp1144

    Variant of Cp280 with Euro character

    Cp1145

    Variant of Cp284 with Euro character

    Cp1146

    Variant of Cp285 with Euro character

    Cp1147

    Variant of Cp297 with Euro character

    Cp1148

    Variant of Cp500 with Euro character

    Cp1149

    Variant of Cp871 with Euro character

    Cp1381

    IBM OS/2, DOS People's Republic of China (PRC)

    Cp1383

    IBM AIX People's Republic of China (PRC)

    Cp33722

    IBM-eucJP - Japanese (superset of 5050)

    ISO2022_CN_CNS

    CNS11643 in ISO 2022 CN form, Traditional Chinese (conversion from Unicode only)

    ISO2022_CN_GB

    GB2312 in ISO 2022 CN form, Simplified Chinese (conversion from Unicode only)

    JISAutoDetect

    Detects and converts from Shift-JIS, EUC-JP, ISO 2022 JP (conversion to Unicode only)

    MS874

    Windows Thai

    MacArabic

    Macintosh Arabic

    MacCentralEurope

    Macintosh Latin-2

    MacCroatian

    Macintosh Croatian

    MacCyrillic

    Macintosh Cyrillic

    MacDingbat

    Macintosh Dingbat

    MacGreek

    Macintosh Greek

    MacHebrew

    Macintosh Hebrew

    MacIceland

    Macintosh Iceland

    MacRoman

    Macintosh Roman

    MacRomania

    Macintosh Romania

    MacSymbol

    Macintosh Symbol

    MacThai

    Macintosh Thai

    MacTurkish

    Macintosh Turkish

    MacUkraine

    Macintosh Ukraine

    JDK自带的native2ascii工具完全揭密 作者:熔岩 日期:2006-12-19 MSN : leizhimin@126.com   背景:在做Java开发的时候,常常会出现一些乱码,或者无法正确识别或读取的文件,比如常见的validator验证用的消息资源(properties)文件就需要进行Unicode重新编码。原因是java默认的编码方式为Unicode,而我们的计算机系统编码常常是GBK等编码。需要将系统的编码转换为java正确识别的编码问题就解决了。   1、native2ascii简介:native2ascii是sun java sdk提供的一个工具。用来将别的文本类文件(比如*.txt,*.ini,*.properties,*.java等等)编码转为Unicode编码。为什么要进行转码,原因在于程序的国际化。Unicode编码的定义:Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。1990年开始研发,1994年正式公布。随着计算机工作能力的增强,Unicode也在面世以来的十多年里得到普及。(声明:Unicode编码定义来自互联网)。   2、获取native2ascii:安装了jdk后,假如你是在windows上安装,那么在jdk的安装目录下,会有一个bin目录,其中native2ascii.exe正是。   3、native2ascii的命令行的命名格式native2ascii -[options] [inputfile [outputfile]] 说明: -[options]:表示命令开关,有两个选项可供选择 -reverse:将Unicode编码转为本地或者指定编码,不指定编码情况下,将转为本地编码。 -encoding encoding_name:转换为指定编码,encoding_name为编码名称。   [inputfile [outputfile]] inputfile:表示输入文件全名。 outputfile:输出文件名。如果缺少此参数,将输出到控制台。   4、最佳实践:首先将JDK的bin目录加入系统变量path。在盘下建立一个test目录,在test目录里建立一个zh.txt文件,文件内容为:“熔岩”,打开“命令行提示符”,并进入C:\test目录下。下面就可以按照说明一步一步来操作,注意观察其中编码的变化。   A:将zh.txt转换为Unicode编码,输出文件到u.txt native2ascii zh.txt u.txt 打开u.txt,内容为“\u7194\u5ca9”。   B:将zh.txt转换为Unicode编码,输出到控制台 C:\test>native2ascii zh.txt \u7194\u5ca9 可以看到,控制台输出了“\u7194\u5ca9”。   C:将zh.txt转换为ISO8859-1编码,输出文件到i.txt native2ascii -encoding ISO8859-1 zh.txt i.txt 打开i.txt文件,内容为“\u00c8\u00db\u00d1\u00d2”。   D:将u.txt转换为本地编码,输出到文件u_nv.txt native2ascii -reverse u.txt u_nv.txt 打开u_nv.txt文件,内容为“熔岩”。   E:将u.txt转换为本地编码,输出到控制台 C:\test>native2ascii -reverse u.txt 熔岩 可以看到,控制台输出了“熔岩”。   F:将i.txt转换为本地编码,输出到i_nv.txt native2ascii -reverse i.txt i_nv.txt 打开i_nv.txt文件,内容为“\u00c8\u00db\u00d1\u00d2”。发现转码前后完全一样的。也就是说,等于没有转,或者说思想糊涂,对命名没有理解。。   G:将i.txt转换为GBK编码,输出到i_gbk.txt native2ascii -reverse -encoding GBK i.txt i_gbk.txt 打开i_gbk.txt文件,内容为“\u00c8\u00db\u00d1\u00d2”。发现转码前后完全一样的。也就是说,等于没有转,或者说思想糊涂,对命名没有理解。   H:将u_nv.txt转码到本地编码GBK,输出到控制台 C:\test>native2ascii -reverse -encoding ISO8859-1 i.txt 熔岩 从这个结果看,目标达到到了,编码i.txt为ISO8859-1,转为本地编码后内容为“熔岩”。从这里应该意识到,native2ascii -reverse命令中-encoding指定的编码为源文件的编码格式。而在native2ascii 命令中-encoding指定的编码为(生成的)目标文件的编码格式。这一点非常的重要!切记!! 继续探索,新建文件12a.txt,内容“12axyz”。看看纯字母数字的编码又如何。   I:将纯字母数字的文本文件12a.txt转换为Unicode编码 native2ascii 12a.txt 12a_nv.txt 打开12a_nv.txt文件,内容为“12axyz”。 继续测试,转为ISO8859-1编码看看 C:\test>native2ascii -encoding ISO8859-1 12a.txt 12axyz 结果还是没有转码。 从结果可以得出结论:对于纯数字和字母的文本类型件,转码前后的内容是一样的。   5、总结native2ascii是一个非常的好转码工具,并且转码是可逆的!而其真正的含义并非本地编码——>转码为ASCII码,而是一个通用的文本文件编码转换工具。在做编码转换的时候有两类指定编码的情形,分别指输出文件编码和输入文件编码,具体可以看看最佳实践部分。   声明:原创作品,未经授权,拒绝转载!  
    转载请注明原文地址: https://ju.6miu.com/read-2098.html

    最新回复(0)