主題:java 編碼轉換工具 native2ascii (中文與Unicode等互轉)使用小結

Java代碼 
native2ascii [options] [inputfile [outputfile]] 

 
     查官方api文檔,命令如下:
     官方對參數的解釋也清晰簡單,這裏就不貼原文了,用自己語言描述下:

首先,[oprions],有如下兩個命令可以選擇:

 “-reverse” :      將Latin-1或者Unicode編碼轉換爲本地代碼。(就是形如: \u4f60\u597d -->你好 )


 “-encoding encoding_name”:將本地編碼轉換爲Latin-1或Unicode編碼,如: -encoding gbk
                                          (就是: 你好--》\u4f60\u597d),當然也可跟-reverse命令配合使用,

                                            來指定-reverse 的源文件編碼方式。後面具體描述。


其次,[inputfile [outputfile]]

 

    inputfile,  你懂地,輸入文件。如果沒有輸入文件,你在控制檯輸入點字符串(如果native2ascii無參數執行,則會等待輸入)

    outputfile,你更懂,輸出文件嘛。如果不輸的話,它會給你在控制檯打出結果。

 

最後,啥也不說了,來點實際的:

 

1、將一個全是中文的文本文件 a.txt (內容爲:“你好!” ,你可以用其他格式的文件) 轉爲 Unicode:

 
Java代碼 
native2ascii a.txt  

  

     (備註:其實是  native2ascii -encoding Unicode a.txt   ,因爲java默認是unicode編碼,故略寫了)

 

2、將中文文件a.txt 轉換成Unicode編碼後,輸出到目標文件b.txt中:
 
 
Java代碼 
native2ascii a.txt b.txt  

           3、將中文文件轉換爲其他編碼,如通用的 iso8859-1,輸出到iso.txt :

   
Java代碼 
native2ascii -encoding ISO8859-1 a.txt iso.txt  

                           

                                             圖3:將中文文件轉換爲iso8859-1格式

     同理,你可以轉換爲gbk,utf-8等,但在這裏的編碼必須是支持的編碼,瞭解更多支持的編碼請查閱官方文檔:

    

            http://download.oracle.com/javase/6/docs/technotes/guides/intl/encoding.doc.html

 

 

4、使用-reverse命令,將Unicode編碼逆轉爲本地編碼,輸出在控制檯:

 

    
Java代碼 
native2ascii -reverse b.txt 

 

5、使用-reverse -encoding encoding_name 將其他形式編碼轉換爲本地編碼


    
Java代碼 
native2ascii -reverse  -encoding ISO8859-1  iso.txt 

 

說明:    因爲我們在3中使用了-encoding命令來指定輸出文件的編碼爲iso8859-1,就不再是系統默認的Unicode編碼了,所以,在要把它轉換爲本地編碼時,需要給它賦編碼。如果不給他賦-encoding命令,而直接使用如下命令:

     
Java代碼 
native2ascii -reverse  iso.txt   

 我們將看到結果如下:
 
                   

跟輸入文件iso.txt裏面的內容一樣,沒有轉換過來。

 

 

總結:

               要將一個本地編碼文件轉換爲其他格式編碼,(形如:   你好 --->\u4f60\u597d )採用

        
Java代碼 
native2ascii -encoding encoding_name  inputfile  

 

              要將其他編碼格式的文件轉換爲本地編碼,( 形如:\u4f60\u597d -->你好)採用:

 
Java代碼 
native2ascii  -reverse -encoding encoding_name inputfile 

 

因爲 java 默認是Unicode編碼,

 

              故“ native2ascii  inputfile”  命令等價於“ native2ascii -encoding Unicode inputfile”,          

              

      " native2ascii -reverse inputfile  " 等價於 native2ascii  -reverse -encoding Unicode inputfile

 

所以,平時在使用中如果默認的話,都把 -encoding encoding_name 參數省去,以示簡潔

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章