因為 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編碼
沒有留言:
張貼留言