.NET Core 不知道 Windows 1252,如何解决?
.NET Core doesn't know about Windows 1252, how to fix?
此程序在为 .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
为此,您需要 register the CodePagesEncodingProvider
来自 System.Text.Encoding.CodePages
包的实例。
为此,安装 the System.Text.Encoding.CodePages package:
dotnet add package System.Text.Encoding.CodePages
然后(在隐式或显式 运行 dotnet restore
之后)你可以调用:
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
var enc1252 = Encoding.GetEncoding(1252);
或者,如果您只需要那个代码页,您可以直接获取它,无需注册:
var enc1252 = CodePagesEncodingProvider.Instance.GetEncoding(1252);
请写:
<ItemGroup>
<PackageReference Include="System.Text.Encoding.CodePages" Version="4.3.0" />
</ItemGroup>
在 csproj 中。
在包控制台中写入“dotnet restore”,恢复程序集。
并编写示例代码:
public class MyClass
{
static MyClass()
{
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
}
}
此程序在为 .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
为此,您需要 register the CodePagesEncodingProvider
来自 System.Text.Encoding.CodePages
包的实例。
为此,安装 the System.Text.Encoding.CodePages package:
dotnet add package System.Text.Encoding.CodePages
然后(在隐式或显式 运行 dotnet restore
之后)你可以调用:
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
var enc1252 = Encoding.GetEncoding(1252);
或者,如果您只需要那个代码页,您可以直接获取它,无需注册:
var enc1252 = CodePagesEncodingProvider.Instance.GetEncoding(1252);
请写:
<ItemGroup>
<PackageReference Include="System.Text.Encoding.CodePages" Version="4.3.0" />
</ItemGroup>
在 csproj 中。
在包控制台中写入“dotnet restore”,恢复程序集。
并编写示例代码:
public class MyClass
{
static MyClass()
{
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
}
}