Quello dovrebbe essere solo un problema del browser... Prova a mandare un header che specifichi come charset l'utf-8 ("Content-Type: text/html; charset=utf-8")
In alternativa, al posto di leggere il file come stringa:
FileStream stream = File.Open(dires, FileMode.Open);
StreamReader reader = new StreamReader(stream);
readfile = reader.ReadToEnd();
reader.Close();
Leggi direttamente i byte del file e mandalo così com'è senza codifiche e decodifiche varie:
byte [] data = File.ReadAllByte("/path/to/file");
Luca