之前在寫 C# .NET Framework 的時候要使用其他編碼格式很簡單,寫上編碼格式就可以了,但今天在 .NET Core 6.0 讀取檔案使用 Big5(950) 的時候,拋出這個錯誤:
原來 .NET Core 只有保留最基礎的編碼格式,其他的編碼格式使用的時候需要自己增加
需要先從 NuGet 安裝 System.Text.Encoding.CodePages
註冊使其支援不同的編碼格式
程式碼示範: 讀取文件並輸出
Unhandled exception. System.NotSupportedException: No data is available for encoding 950. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method.
原來 .NET Core 只有保留最基礎的編碼格式,其他的編碼格式使用的時候需要自己增加
解決方法
只要安裝一個套件和加入一行程式碼就解決了需要先從 NuGet 安裝 System.Text.Encoding.CodePages
dotnet add package System.Text.Encoding.CodePages
註冊使其支援不同的編碼格式
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
接下來就和以前一樣了
程式碼示範: 讀取文件並輸出
using (System.IO.StreamReader reader = new System.IO.StreamReader(@"file.txt", System.Text.Encoding.GetEncoding(950)))
{
while (!reader.EndOfStream)
{
Console.WriteLine(reader.ReadLine());
}
}
留言
張貼留言
如果有任何問題、建議、想說的話或文章題目推薦,都歡迎留言或來信: a@ruyut.com