星期六, 1月 14, 2017

Compile Error CS1012

原本一個使用 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),就可以改變編碼,讓編譯成功了。

沒有留言:

張貼留言