ASP.NET Core中文編碼
最近在處理字串加密過程中,需要指定編碼做內容轉換,
意外踩到了 .NET Core 編碼的坑。
起因是這段程式碼:
在取得 Encoding 時會出現以下錯誤訊息:
原來是 .NET Core 僅保留最常用的編碼,
(詳細支援清單請見下方 MSDN 連結)
其他編碼器需另外安裝
使用步驟:
1. 開啟 Package Manager Console,輸入以下指令
2. 註冊編碼提供者:
需註冊後才能使用額外編碼,可將以下程式碼放在程式入口
(例如:Startup 中)
做完就可以快樂使用囉~
參考來源:
1. [.NET Core] Encoding.GetEncoding(950) 取得繁體中文失效 !?
2. MSDN: Encoding Class
意外踩到了 .NET Core 編碼的坑。
起因是這段程式碼:
private static string PlainTextToHex(string str)
{
byte[] strBytes = Encoding.GetEncoding("BIG5").GetBytes(str);
string strHEX = BitConverter.ToString(strBytes);
strHEX = strHEX.Replace("-", "");
return strHEX;
}
在取得 Encoding 時會出現以下錯誤訊息:
'BIG5' is not a supported encoding name.
原來是 .NET Core 僅保留最常用的編碼,
(詳細支援清單請見下方 MSDN 連結)
其他編碼器需另外安裝
使用步驟:
1. 開啟 Package Manager Console,輸入以下指令
Install-Package System.Text.Encoding.CodePages
2. 註冊編碼提供者:
需註冊後才能使用額外編碼,可將以下程式碼放在程式入口
(例如:Startup 中)
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
做完就可以快樂使用囉~
參考來源:
1. [.NET Core] Encoding.GetEncoding(950) 取得繁體中文失效 !?
2. MSDN: Encoding Class
留言