2022年11月2日 星期三

how to correct garbled code when printing Chinese in NetBeans Output Window?

因為 NetBeans 某些版本設定其 Output 結果視窗接收字碼為 UTF8,故用 Java 列印中文時若出現亂碼,請在列印指令前,加上修改輸出串流編碼為 UTF8 指令。寫法如下:

   import java.io.PrintStream;

   System.setOut(new PrintStream(System.out, true, "UTF8"));

   // 執行上述指令須處理 UnsupportedEncodingException 未支援編碼例外

   // 可用try-catch結構自己處理例外,或宣告執行該指令的方法丟出(throws)該例外給上一層處理

若想知道輸出串流目前編碼為何,可用如下指令診斷。

   System.out.println(System.out.charset());  // 常見為 x-windows-950 (繁中Big5碼) 或 UTF-8

: Windows 繁中版使用 Big5 編碼,故終端機下使用 javac.exe 編譯器若出現 unmappable character 無法映射字元錯誤,可利用如下選項,通知編譯器選用適當編碼,讀取中文:

      javac.exe -encoding big5 My.java    適用於My.java中文用Big5編碼

      javac.exe -encoding utf8 My.java    適用於My.java中文用UTF8編碼

沒有留言: