当为.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
当为.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
Answers:
要做到这一点,你需要注册的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);
dotnet add package System.Text.Encoding.CodePages
?
csproj
。如果使用的是Visual Studio,则还可以使用“程序包管理器”代替该命令。
NotSupportedException
。
CodePagesEncodingProvider.Instance.GetEncoding
与变量输入一起使用。 docs.microsoft.com/zh-cn/dotnet/api/…说:“您不应调用EncodingProvider.GetEncoding重载”。原因可能是EncodingProvider
不会提供所有编码,但可能只会提供其他编码(例如,您不会像CodePagesEncodingProvider.Instance.GetEncoding(28591)
给出的那样获得ISO-8859-1代码页null
)。
请写出:
<ItemGroup>
<PackageReference Include="System.Text.Encoding.CodePages" Version="4.3.0" />
</ItemGroup>
在csproj。
在程序包控制台中,写“ dotnet restore”,还原程序集。
并将此代码作为示例:
public class MyClass
{
static MyClass()
{
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
}
}
public static Encoding Windows1252 => Encoding.GetEncoding(1252);