You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Core 6中WPF调用Encoding.GetEncoding(1252)报错求助

解决.NET Core 6 WPF中读取1252编码CSV文件的编码缺失异常

问题根源在于.NET Core的默认编码支持策略:.NET Core仅内置UTF-8等少数通用编码,Windows-1252这类非通用编码需要额外引入编码包并注册才能使用。WinForms项目模板默认依赖了包含该编码的组件,因此无需额外配置即可正常运行,但WPF项目没有这个默认设置。

解决步骤如下:

  • 安装编码支持包
    在你的WPF项目(或共享类库项目)中安装System.Text.Encoding.CodePages NuGet包。可通过NuGet包管理器搜索安装,或使用以下命令:
    Package Manager Console命令:

    Install-Package System.Text.Encoding.CodePages
    

    .NET CLI命令:

    dotnet add package System.Text.Encoding.CodePages
    
  • 注册编码提供器
    在WPF应用启动时注册编码提供器,确保这段代码在调用checkCsv方法之前执行。例如在App.xaml.cs的OnStartup方法中添加:

    protected override void OnStartup(StartupEventArgs e)
    {
        // 注册编码提供器,启用1252等非默认编码
        System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance);
        base.OnStartup(e);
    }
    

    若希望在类库内部处理,也可在类库的初始化逻辑中添加这段注册代码,避免依赖调用方配置。

  • 验证修改
    完成上述操作后,再次调用checkCsv方法,1252编码即可正常被识别,不会再抛出编码缺失的异常。

内容的提问来源于stack exchange,提问作者patsy2k

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 01:54:56