how to read special character like é, â and others in C#

There is no such thing as "special character". What those likely are is extended ascii characters from the latin1 set (iso-8859-1). You can read those by supplying encoding explicitly to the stream reader (otherwise it will assume UTF8)

using (StreamReader r = new StreamReader(fileName, Encoding.GetEncoding("iso-8859-1")))
    r.ReadToEnd();

StreamReader sr = new StreamReader(stream, Encoding.UTF8)

You have to tell the StreamReader that you are reading Unicode like so

StreamReader sr = new StreamReader(stream, Encoding.Unicode);

If your file is of some other encoding, specify it as the second parameter