Error CS1010: Newline in constant 解決方式
- 2021-12-08
- 6264
- 0
- Visual Studio 精選擴充套件
先說結論:這是編碼錯誤導致!
印象中每一版的 Visual Studio 剛推出都會有一樣的問題(難怪大家都說不要裝中文版),昨天要睡覺之前寫好了一個新功能,推上 Azure DevOps 跑到 CI 時一直跳出 Error CS1010: Newline in constant
的錯誤, 一時半刻沒反應過來,一陣子後才回想起這不是每次都會碰到的嗎….(上一次是 2019 難怪我忘了) ,這篇文章會快速的講原因和解法。
前情提要
本機編譯完全沒問題,丟上編譯機就報錯(這不是CI 的錯,這是 Visual Studio 太厲害)
問題根本
專案範本編碼
這是中文版 Visual Studio 的問題,如果你建立了一個專案並且在裡面輸入到雙位元的字(就是中文、日文、韓文)是完全沒問題的,因為預設專案建立出來的檔案格式會是 UTF-8 with BOM 從下方圖片可看到,編碼正確,中文也正確顯示。
CodeTemplate 編碼
但如果你使用了 Code Template 產生的新檔案,就會出事了
出事的原因是,其實利用 CodeTemplate 產出來的檔案編碼是 Big5
但 Visual Studio 卻說它是 UTF-8
所以用其他的編輯器來看就會是亂碼了(只有 Visual Studio 會正常顯示,你說它強不強😎)
解決方式
Visual Studio 本身是可以改變儲存的編碼,但太麻煩我們就跳過不介紹,你上網搜尋應該是找的到,我們可用任何一個可以調整編碼的編輯器修改編碼(Notepad++, VS Code 都是不錯的選擇),但如果你直接調整可能會造成雙字元的部分全部變亂碼,所以你可以在 Visual Studio 中全選複製,然後再去另外的編輯器貼上,就可以修改編碼又保留雙字元文字。
如果嫌這樣太麻煩,可以安裝「FileEncoding」套件簡單完成此需求,安裝此套件後每個檔案的右下方會顯示文件的編碼,也可以直接點選轉換。
回應討論