Вам необходимо правильно декодировать строку при вводе, например так:
StreamReader rdr = new StreamReader( args[0], Encoding.UTF8 );
string str = rdr.ReadToEnd();
rdr.Close();
Поток является физическим, и вы должны знать, в какой кодировке он находится.* Строка , с другой стороны, логична.Внутренняя кодировка, используемая для строк, вас не касается;кроме того, какие символы он может представлять;и он может представлять все символы, так как внутренняя кодировка для Unicode.(Если внутренняя кодировка была KOI-8, немецкие или французские символы не могли быть представлены.)
На выходе это , что вам снова придется беспокоиться о кодировке.1015 * Если вы не укажете кодировку на входе и выходе, предполагается платформа по умолчанию.Это может быть не то, что вы хотите.Полезно знать и указывать кодировку на входе и выходе.