今天用文本編輯器寫了個小java程序,在控制檯下測試 java -verbose 命令,卻在執行javac 時候有異常,報 MS932 編碼不能解析的問題,顯示文件中有不能識別的編碼。
在編輯器裏修改編碼方式爲GB2312就正常了,一開始是UTF-8. 原因是:
用Unicode格式編碼的文檔,在文件的頭部可以保存一個用來區分不同Unicode編碼方式的文件頭(Unicode的編碼方式有好幾種,最常用的有定長格式的UTF-32和UTF-16,變長格式的UTF-8),稱爲Byte OrderMark(簡稱BOM),有些文本編輯器可以識別這個文件頭,另一些不能識別Unicode文件頭的編輯器會在頭部顯示2到3個亂碼。
還有個解決辦法就是使用 javac 的 -encoding 參數, 如 javac -encoding UTF-8 ***