3 回答
TA贡献1776条经验 获得超12个赞
要做到这一点,你需要注册的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);
TA贡献1865条经验 获得超7个赞
请写出:
<ItemGroup>
<PackageReference Include="System.Text.Encoding.CodePages" Version="4.3.0" />
</ItemGroup>
在csproj。
在程序包控制台中,写“ dotnet restore”,还原程序集。
并请将此代码作为示例:
public class MyClass
{
static MyClass()
{
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
}
}
TA贡献1784条经验 获得超7个赞
我认为重要的一点是,如果您的编码存储为同一类的静态只读字段或静态const,则静态构造函数将无法工作。访问字段时不会及时执行。解决此问题的一种方法是使用lambda属性:public static Encoding Windows1252 => Encoding.GetEncoding(1252);
- 3 回答
- 0 关注
- 565 浏览
添加回答
举报