【发布时间】:2020-04-11 19:45:50
【问题描述】:
我在 WPF 应用程序中有一个字符串,我使用 Process.StartInfo.Arguments 属性将其作为命令行参数传递给本机应用程序。我知道 C# 以 UTF-16 编码存储字符串。而且我知道本机应用程序对编码没有任何作用,并希望它是默认的,在我的国家是 windows-1251。所以我们在 C# 应用程序中有 UTF-16,在本机应用程序中有 1251。这实际上以某种方式起作用。
问题是转换发生在哪里以及它的可靠性如何。有没有办法强制 Process 类对命令行参数使用特定的编码?
【问题讨论】:
-
Process Proc = new Process(); Proc.StartInfo.StandardOutputEncoding = Encoding.UTF8;
-
@Clint 你确定这对进程参数有影响吗?
-
哎呀,它错误的上下文参数在 UTF-16 中接收,我认为 .NET 字符串也是如此
标签: c# encoding character-encoding command-line-arguments