close
重點語法
javac -encoding [char_encode_type] source.java
 
從網路copy來的
1.檢查作業系統設定:
確定國籍語言資料是「Traditional Chinese Taiwan)」看作業系統是否有此字形(例如:Unix)

2.更新 Java 環境版本:
某些 Java IDE 所用的編譯器和 JRE 是不相容於中文的(我遇過這樣的情形)
,你最好能把 Java IDE 的 JDK 指到新版的 JDK。

3.如果資料庫取回的資料是亂碼:
換別套或者更新 JDBC 驅動程式試試看
或者看資料庫關於字形或語言相關設定

4.雖然 Java 內部完整地使用 Unicode,
但是你所使用的作業系統可不見得。以繁體中文版的 Windows 98 來說,
預設的編碼方式是 MS950,這是一種相容於 Big 5的編碼方式
字串資料從 Windows 一送進 JRE,JRE 的轉碼系統馬上先把字串編碼由
MS950 轉成 Unicode,才能進行處理。
字串資料由 JRE 一送出給 Windows,JRE 的轉碼系統馬上先將
其由 Unicode 轉成 MS950,作業系統才能處理。

5.JDK 或 JRE 會用什麼樣的編碼方式來和作業系統溝通,
請執行下面的 Java 程式:
//--------------------------------
public class ShowNativeEncoding {

public static void main(String[] args) {

String enc = System.getProperty(“file.encoding”);

System.out.println(enc);
}
}
//--------------------------------
如果執行結果不是下面的字串之一,那麼你的作業系統國籍語言設定可能就有問題了:

Big5:這是繁體中文 de facto 標準。

CNS11643:台灣的官方標準繁體中文編碼。

Cp937:繁體中文加上 6204 個使用者自定的字元
Cp948:繁體中文版 IBM OS/2 用的編碼方式。
Cp964:繁體中文版 IBM AIX 用的編碼方式。
EUC_TW:台灣的加強版 Unicode。
ISO2022CN:編碼中文的一套標準。
ISO2022CN_CNS:編碼中文的一套標準,繁體版,襲自 CNS11643。
MS950 或 Cp950:ASCII + Big5,用於台灣和香港的繁體中文 MS Windows作業系統。

Unicode:有次序記號的 Unicode。次序記號佔用兩個 byte,如果其值是0xFEFF,表示使
用 big-endian(由大到小)的次序為 Unicode 編碼;如果其值是 0xFFFF,表示使用
little-endian(由小到大)的次序為 Unicode 編碼。

UnicodeBig:使用 big-endian(由大到小)的次序為 Unicode 編碼。

UnicodeLittle:使用 little-endian(由小到大)的次序為 Unicode 編碼。

UTF8:使用 UTF-8 為 Unicode 編碼。

關於 Big 5 編碼,請查閱「CJKV Information Processing」一書的附錄 H(O'Reilly出版)。

6.Java編譯時的注意事項
編譯的時候,如果你不說明原始檔編碼方式的話,
javac 編譯器在讀進此原始程式檔,開始編譯之前,
會先去詢問作業系統檔案預設的編碼方式為何。
以繁體中文 Windows 98 來說,javac 會先詢問 Windows 98,
得知檔案是用 MS950 的方式編碼。
然後就可以將檔案由 MS950 轉成 Unicode 編碼方式,開始進行編譯。
通常在編譯階段,會造成的錯誤有下列幾種可能:

1.如果作業系統的國籍資料設定錯誤,會造成 javac 編譯器取得的編碼資訊是錯的。
2.較差勁的編譯器可能沒有主動詢問作業系統的編碼方式,而是採用編譯器預設的編碼方式。
3.如果原始程式不是用編譯當時作業系統預設的編碼方式存檔的,也會造成錯誤。比方說,原始程式檔是台灣程式員寫的,在繁體中文版的 Windows上以 MS950 編碼存檔,再經由網路傳送到泰國,在泰文版的 Windows 上編譯(泰文版 Windows 預設的檔案編碼方式是 MS874)。

下面的例子,我們告訴編譯器「TaiwanClass.java」
是以繁體中文版 Windows 的「MS950」編碼的:
javac –encoding MS950 TaiwanClass.java
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 Hsueh Weicheng 的頭像
    Hsueh Weicheng

    Hsueh Weicheng的部落格

    Hsueh Weicheng 發表在 痞客邦 留言(0) 人氣()