Dot-Net
用於網路標準庫的 Shift-JIS 編碼
在
net45,Encoding.GetEncoding("Shift-JIS")工作正常,但在netstandard它下面拋出:System.ArgumentException:“Shift-JIS”不是受支持的編碼名稱。有關定義自定義編碼的資訊,請參閱 Encoding.RegisterProvider 方法的文件。
它引用的文件提到了通過
CodePagesEncodingProviderUWP 下對 .NET Core Native 的支持,但對於netstandard.那麼,是否可以在
netstandard庫中使用 Shift-JIS 編碼?
對的,這是可能的。參考System.Text.Encoding.CodePages包中
project.json:"System.Text.Encoding.CodePages": "4.0.1"在獲取 Shift-JIS 編碼之前呼叫以下程式碼:
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);你很適合:
Encoding.GetEncoding("Shift-JIS")更新:
System.Text.Encoding.CodePages未捆綁在NETStandard.Library 1.6 包中,但從您的類庫中引用System.Text.Encoding.CodePages沒有問題
netstandard(直到您的類庫目標netstandard1.2或更低)。這是帶有程式碼的範例解決方案。有一個以類庫為目標的類庫和一個以類庫為目標和引用的
netstandard1.3消費控制台應用程序。netcoreapp1.0類庫包含對應於檢索Shift-JIS編碼的程式碼。它也可以從針對其他框架的應用程序中引用和使用。