Czy możesz używać ciągów UTF-8 jako argumentów dla StartInfo?Czy Process.StartInfo.Arguments obsługuje ciąg znaków UTF-8?
Próbuję przekazać UTF-8 (w tym przypadku japoński ciąg) do aplikacji jako argument konsoli.
Coś takiego (to tylko przykład! (By cmd.exe być zwyczaj aplikacja))
var process = new System.Diagnostics.Process();
process.StartInfo.Arguments = "/K \"echo これはテストです\"";
process.StartInfo.FileName = "cmd.exe";
process.StartInfo.UseShellExecute = true;
process.Start();
process.WaitForExit();
Wykonanie to wydaje się tracić ciąg UTF-8 i cała aplikacja jest cel widzi " Echo ?????????"
Podczas wykonywania tego polecenia bezpośrednio w wierszu poleceń (przez wklejenie argumentów) aplikacja docelowa otrzymuje ciąg poprawnie, mimo że sam wiersz polecenia nie wyświetla go poprawnie.
Czy muszę zrobić coś specjalnego, aby włączyć wsparcie dla UTF-8 w argumentach, czy to nie jest obsługiwane?
czy przekazałeś argumenty do swojej aplikacji, uruchamiając aplikację, używając Process i ProcessStartInfo lub bezpośrednio z wiersza poleceń? –
Użyłem Process/ProcessStartInfo - zmieniłem tylko "cmd.exe" na "test.exe", która była moją aplikacją WinForm. –