Asp.netcore中由於頁面編碼導致的中文亂碼

傑克.陳發表於2018-06-19
原文:Asp.net core中由於頁面編碼導致的中文亂碼

問題描述

最近使用asp.net core寫了一個簡單的網站,在windows系統下完全沒有出現問題。後來在linux系統中搭建了docker,並且在linux中自動使用git獲取原始碼,編譯,部署一條龍自動化。結果發現一個奇怪的現象:在控制器的程式碼中賦值中文給view model,頁面顯示正常。但如果是在view model中定義中文,頁面中的中文會亂碼。

原因

根據現象,第一時間想到的是,中文來源的編碼出現問題。後來發現因為view model的cs檔案都用了gb2312編碼了。原始碼在linux那頭被讀取編譯的時候,估計用的是utf8.

解決方法

由於vs2017中預設把設定頁面檔案編碼的選單隱藏了,因此需要到自定義選單中設定才能在vs中修改檔案編碼。具體可以參考.

 

其他

其實一開始出現亂碼的時候沒有往這個方向思考,在網上找了一些關於net core亂碼的資料,發現沒有效果,然後才一步步測試出來問題所在。在這裡記錄一下。


相關文章