您能将UTF-8字符串用作StartInfo的参数吗?
我正在尝试将UTF-8字符串(在这种情况下是日语字符串)作为控制台参数传递给一个应用程序。
就像这样(这只是一个示例!(cmd.exe将是自定义应用程序))
var process = new System.Diagnostics.Process();
process.StartInfo.Arguments = "/K \"echo これはテストです\"";
process.StartInfo.FileName = "cmd.exe";
process.StartInfo.UseShellExecute = true;
process.Start();
process.WaitForExit();
执行此命令似乎会丢失UTF-8字符串,目标应用程序看到的只是“echo ?????????”
当直接在命令行上执行此命令(通过粘贴参数)时,即使命令行本身似乎无法正确显示它,目标应用程序也能正确接收到该字符串。
我需要采取特殊措施来启用参数的UTF-8支持,还是根本不支持?
main
作为入口点,仍然可以使用GetCommandLine(http://msdn.microsoft.com/en-us/library/ms683156(VS.85).aspx)获取UTF-16参数。这是Qt的QCoreApplication在Windows上的工作方式。 - Patrick