前陣子發生一個小Bug
翻遍stackoverflow
弄了3、4個小時才找到答案
在這邊紀錄一下

緣起是一個.net framework的MVC專案
因為做多國語系的關係
html的meta data使用外語
實作方式是用ViewBag把外語內容
傳到cshtml
結果看網頁原始碼是亂碼

比如說原文Türk alfabesi
會變成Türk alfabesi
查到許多解法都是針對.net core
但無奈公司專案是framework
不可能為了這個升級.net core

嘗試過直接在cshtml放上原文
就會顯示正常
但實際上也無法這樣解決
因為.net都是透過資源檔做翻譯管理
還是得透過後端拿取
再丟給cshtml

最後查到這一篇 stackoverflow
web.confg加上指定的encoderType就成功了

1
2
3
4
5
<system.web>
<httpRuntime encoderType="System.Web.Security.AntiXss.AntiXssEncoder,
System.Web, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a"/>
</system.web>

在這邊紀錄一下