前陣子發生一個小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就成功了

plaintext
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>

在這邊紀錄一下