.NET Core不了解Windows 1252,如何解决?

当为.NET 4编译时,此程序运行良好,但为.NET Core编译时,该程序运行正常。我了解不支持编码的错误,但无法解决。


Public Class Program

    Public Shared Function Main(ByVal args As String()) As Integer

        System.Text.Encoding.GetEncoding(1252)

    End Function

End Class


慕慕森
浏览 476回答 3
3回答

蝴蝶不菲

要做到这一点,你需要注册的CodePagesEncodingProvider从实例System.Text.Encoding.CodePages包。为此,请安装System.Text.Encoding.CodePages包:dotnet add package System.Text.Encoding.CodePages然后(隐式或显式运行后dotnet restore),您可以调用:Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);var enc1252 = Encoding.GetEncoding(1252);另外,如果只需要一个代码页,则无需注册即可直接获取它:var enc1252 = CodePagesEncodingProvider.Instance.GetEncoding(1252);

牧羊人nacy

请写出:<ItemGroup>&nbsp; &nbsp; <PackageReference Include="System.Text.Encoding.CodePages" Version="4.3.0" /></ItemGroup>在csproj。在程序包控制台中,写“ dotnet restore”,还原程序集。并将此代码作为示例:public class MyClass{&nbsp; &nbsp; static MyClass()&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);&nbsp; &nbsp; }}

慕侠2389804

我认为重要的一点是,如果您的编码存储为同一类的静态只读字段或静态const,则静态构造函数将无法工作。访问字段时不会及时执行。解决此问题的一种方法是使用lambda属性:public static Encoding Windows1252 => Encoding.GetEncoding(1252)
打开App,查看更多内容
随时随地看视频慕课网APP