¿Se puede usar una cadena UTF-8 como los argumentos para una información de inicio?¿Process.StartInfo.Arguments admite una cadena UTF-8?
Estoy tratando de pasar un UTF-8 (en este caso una cadena japonesa) a una aplicación como un argumento de consola.
Algo como esto (esto es sólo un ejemplo! (Cmd.exe habría una aplicación personalizada))
var process = new System.Diagnostics.Process();
process.StartInfo.Arguments = "/K \"echo これはテストです\"";
process.StartInfo.FileName = "cmd.exe";
process.StartInfo.UseShellExecute = true;
process.Start();
process.WaitForExit();
La ejecución de este parece perder la cadena UTF-8 y toda la aplicación de destino que ve es " eco ?????????"
Al ejecutar este comando directamente en la línea de comando (pegando los argumentos), la aplicación de destino recibe la cadena correctamente aunque la línea de comando no parezca mostrarla correctamente.
¿Debo hacer algo especial para habilitar la compatibilidad con UTF-8 en los argumentos o simplemente no es compatible?
¿Pasó los argumentos a su aplicación iniciando la aplicación usando Process y ProcessStartInfo o directamente desde la línea de comandos? –
Utilicé Process/ProcessStartInfo: solo cambié "cmd.exe" a "test.exe", que era mi aplicación WinForms. –