I have a .Net application that fires up a process, passing a long argument list through Process.StartInfo.Arguments. The new process can only handle 8-bit characters in the arguments passed to its main() function. Therefore, I've encoded the string in Process.StartInfo.Arguments so that each character is an 8-bit value.
The problem is, the new process doesn't see the same 8-bit values that I've used. For values less than 128, the value pass through unmolested. Other values get changed somehow, and in fact, the argument list seen by the new process is often longer than what I'd passed in.
What encoding is being used to translate the arguments as they're passed to the new process? Can I modify that encoding?
I see the encodings associated with the process' standard output and standard error; I assume those are irrelevant.