隨著客戶的專案開始也引入.NET Core,也就遇到越來越多的靈異事件,在原本.NET Framework跑得好好的程式碼,幾乎都要經過適度的微調。
中文編碼問題就很離奇,直接下$(obj).html('未填寫 <<@ParamsAttrNM[0]>>')填值到span裡,是正常顯示,但是,若改用呼叫function的方式來顯示錯誤訊息,@ParamsAttrNM[0]裡的中文就會變成如下的亂碼。
修改角色成功!
原因是中文被編碼過了。
解決很簡單,只要在Startup.cs的ConfigureServices裡,加上下面這行即可。
//解决ViewBag的中文編碼問題
services.AddSingleton(HtmlEncoder.Create(UnicodeRanges.All));
若不能識別,添加以下命名空間即可。
using System.Text.Encodings.Web;
using System.Text.Unicode;
沒有留言:
張貼留言