1.將中文字符轉換為Unicode:
c:\ Program Files \ Java \ JDK 1 . 5 . 0 _ 04 \ bin & gt;native2ascii
試驗
\u6d4b\u8bd5
2.將Unicode轉換為中文字符:
c:\ Program Files \ Java \ JDK 1 . 5 . 0 _ 04 \ bin & gt;native 2 ascii-反向
\u6d4b\u8bd5
試驗
java自帶的native2ascii.exe是壹個很好的轉碼工具,在bin目錄下。如果您的屬性中有中文字符,您需要將它們轉換成unicode。然後將包含漢字的屬性復制到bin目錄下,然後在cmd中輸入bin目錄,輸入:Native 2 ascii-編碼UTF-8語言-ext _ zh _ cn . properties . Native language-ext _ zh _ cn . properties就可以了。Language-ext_zh_CN.properties是壹個轉碼後的文件。
在做Java開發時,經常會有壹些亂碼或文件無法正確識別或讀取,比如validator使用的公共消息資源(屬性)文件,需要用Unicode重新編碼。原因是java的默認編碼方式是Unicode,而我們的計算機系統編碼往往是GBK等編碼。解決了將系統的編碼轉換成java能正確識別的編碼的問題。
1和native2ascii簡介:native2ascii是sun java sdk提供的工具。用於編碼其他文本文件(如*。txt,*。ini,*。屬性,*。java等。)轉換成Unicode編碼。為什麽需要轉碼?原因在於程序的國際化。Unicode編碼的定義:Unicode(統壹碼、通用碼、單碼)是計算機中使用的壹種字符編碼。它為每種語言中的每個字符設置了統壹的、唯壹的二進制代碼,以滿足跨語言、跨平臺的文本轉換和處理的要求。1990開始研發,1994正式公布。隨著計算機工作能力的增強,Unicode在過去十年中得到了普及。(聲明:Unicode編碼定義來自互聯網)。
2.Get native2ascii:安裝jdk後,如果安裝在windows上,jdk安裝目錄下會有壹個bin目錄,native2ascii.exe正好在其中。
3.native2ascii命令行的命名格式:
native 2 ascii-[選項][輸入文件[輸出文件]]
描述:
-[選項]:表示命令開關,有兩個選項可供選擇。
-reverse:將Unicode編碼轉換為本地編碼或指定編碼,否則將轉換為本地編碼。
-encoding encoding_name:轉換為指定的編碼,encoding_name是編碼名稱。
[輸入文件[輸出文件]]
Inputfile:表示輸入文件的全名。
Outputfile:輸出文件名。如果缺少此參數,它將被輸出到控制臺。
4.最佳實踐:首先,將JDK的bin目錄添加到系統變量path中。在磁盤下創建壹個測試目錄,在測試目錄下創建壹個zh.txt文件,文件內容為“Lava”,打開“命令提示符”,進入C:\test目錄。可以按照說明壹步壹步來,註意編碼的變化。
a:把zh.txt轉換成Unicode代碼,把文件輸出到u.txt
native2ascii zh.txt u.txt
打開u.txt,上面寫著“\u7194\u5ca9”。
b:把zh.txt轉換成Unicode代碼輸出到控制臺。
c:\ test & gt;native2ascii zh.txt
\u7194\u5ca9
可以看到,控制臺輸出“\u7194\u5ca9”。
c:把zh.txt轉換成ISO8859-1代碼,把文件輸出到i.txt
native2ascii編碼ISO8859-1 zh.txt i.txt
打開內容為“\u00c8\u00db\u00d1\u00d2”的i.txt文件。
d:將u.txt轉換成本地代碼,輸出到文件u _ NV.txt。
native 2 ascii-reverse u . txt u _ NV . txt
打開u_nv.txt文件,內容是“熔巖”。
e:將u.txt轉換成本地代碼,輸出到控制臺。
c:\ test & gt;native2ascii -reverse u.txt
火山巖
可以看到,控制臺輸出“熔巖”。
f:將i.txt轉換成本地代碼,輸出到i _ nv.txt。
native 2 ascii-反向i.txt i_nv.txt
打開文件i_nv.txt,內容為“\u00c8\u00db\u00d1\u00d2”。發現轉碼前後完全壹樣。換句話說,等於沒轉過來,或者是迷茫,不懂命名。。
g:將i.txt轉換成GBK碼,輸出到i _ gbk.txt
native 2 ascii-反向編碼GBK i.txt i_gbk.txt
打開文件i_gbk.txt,內容為“\u00c8\u00db\u00d1\u00d2”。發現轉碼前後完全壹樣。換句話說,等於沒轉過來,或者是迷茫,不懂命名。
h:將u_nv.txt轉碼為本地編碼GBK,輸出到控制臺。
c:\ test & gt;native 2 ascii-反向編碼ISO8859-1 i.txt
火山巖
從這個結果來看,目的達到了。i.txt的編碼是ISO8859-1,內容轉換成本地編碼後是“熔巖”。從這裏應該認識到,native2ascii -reverse命令中-encoding指定的編碼是源文件的編碼格式。native2ascii命令中的-encoding指定的編碼是(生成的)目標文件的編碼格式。這壹點很重要!記住!!
繼續探索,新建壹個文件12a.txt,內容為“12axyz”。讓我們看看純字母數字編碼會發生什麽。
I:將純字母數字文本文件12a.txt轉換為Unicode編碼。
native 2 ascii 12a . txt 12a _ NV . txt
打開文件12a_nv.txt,內容為“12axyz”。
繼續測試並切換到ISO8859-1代碼。
c:\ test & gt;本地ascii編碼ISO8859-1 12a.txt
12 XYZ
結果還是沒有轉碼。
從結果可以得出結論,對於純數字和字母的文本類型,轉碼前後的內容是相同的。