ASP.NET Core中文編碼
最近在處理字串加密過程中,需要指定編碼做內容轉換, 意外踩到了 .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