.Net Core 3.1 - 编码过程输出

.Net Core 3.1 - Encoding process output

我有一个进程可以执行一些命令,例如 ping。输出以法语给出结果,但编码不正确。 例如,我得到

Envoi d'une requˆte 'ping'

而不是

Envoi d'une requête 'ping'

我读到有一些编码在 .Net Core 中不可用,但可以通过 Encoding.CodePage 库添加。所以我在我的项目中尝试了它。

我开始在App.xaml.cs中添加:

private void ConfigureServices(IServiceCollection serviceCollection)
{
   Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
}

然后在我管理流程的函数中,我得到了良好的编码:

var enc1252 = Encoding.GetEncoding(1252);
process.StartInfo.StandardOutputEncoding = enc1252;

但是它不起作用,输出结果是一样的,当我检查对象时 'enc1252' 我可以在属性中看到很多错误,例如:

enc1252.BodyName threw an exception of type 'System.NotSupportedException'

有没有我做错了什么或者我错过了什么?

编码提供程序不支持所有属性,例如。 G。 BodyName。但是,在 Process class.

中使用时它应该仍然可以正常工作

该进程可能使用了另一种编码,例如:

CultureInfo.CurrentCulture.TextInfo.OEMCodePage