原本一個使用 C# 撰寫,確定可以編譯成功的專案,沒改任何程式碼,換了新的編譯環境後竟然失敗?
- error CS1012: Too many characters in character literal
依據
官方說法,單引號裡只能包一個字元,不能是字串(字元陣列)。但確實沒改程式碼,怎會字元變字串?來看一下程式:
- string[] fixflds = fixfld.Split('、');
原來是中文全形符號,在 Big5 編碼算一個字元,但英文版作業系統會當做兩個字元。那要如何在編譯時指定 Big5 編碼?在此之前,我們可能要知道怎麼看「目前的編碼」?
- C:\>chcp
- Active code page: 437
試著改改看
- C:\>chcp 950
- Invalid code page
失敗了,難道只有換中文版作業系統可以嗎?還是偷懶一點補裝個中文語系?其實遠比這些簡單,在「地區設定」、「管理」可以變更 Language for non-Unicode programs 為 Chinese (Traditional, Taiwan),就可以改變編碼,讓編譯成功了。
沒有留言:
張貼留言