Возможно, что StreamReader читает его в формате Unicode. Кстати, вы читаете только одну строку ... вам нужно вместо этого перебирать строки ... Лучше всего сделать это следующим образом:
string printstr;
TextReader tr = new StreamReader("print.txt",System.Text.Encoding.ASCII);
printstr = tr.ReadToEnd();
tr.Close();
Или считайте его как двоичный файл и вместо этого прочитайте весь фрагмент в серию байтов, проверка ошибок не производится.
System.IO.BinaryReader br = new System.IO.BinaryReader(new StreamReader("print.txt", System.Text.Encoding.ASCII));
byte[] data = br.ReadBytes(br.BaseStream.Length);
br.Close();
Edit:
После комментария rem я подумал, что лучше включить этот дополнительный фрагмент здесь ... это следует из предыдущего фрагмента, где указана переменная data
...
string sData = System.Text.Encoding.ASCII.GetString(data);
Надеюсь, это поможет,
С наилучшими пожеланиями,
Том.