读取XML中文汉字乱码如何编码

读取XML中文汉字乱码怎么编码
已经知道XML
<?xml version="1.0" encoding="utf-8?>
<DocumentElement>
  <Tickets>
<ID>5363887</ID>
<SchemeID>4988243</SchemeID>
<PrintOutType>135</PrintOutType>
    <Identifiers>JDD2018335526896551</Identifiers>
    <LotteryID>45</LotteryID>
    <PlayTypeID>4501</PlayTypeID>
    <IsuseName>20140410</IsuseName>
    <Ticket>SPF|73=3|单关</Ticket>
    <Multiple>1</Multiple>
    <Money>2</Money>
    <OneMoney>2.00</OneMoney>
    <zhushu>1</zhushu>
  </Tickets>
  <Tickets>
<ID>5267696</ID>
<SchemeID>4854629</SchemeID>
<PrintOutType>135</PrintOutType>
    <Identifiers>JDD255235228569952</Identifiers>
    <LotteryID>45</LotteryID>
    <PlayTypeID>4501</PlayTypeID>
    <IsuseName>20140410</IsuseName>
    <Ticket>SPF|73=3/1/0,74=1,75=0,76=0|4*1</Ticket>
    <Multiple>1</Multiple>
    <Money>6</Money>
    <OneMoney>2.00</OneMoney>


但是我读出来的XML中文汉字是乱码,读取代码:
 string allstrLine = "";

            OpenFileDialog fileDialog = new OpenFileDialog();
            if (fileDialog.ShowDialog() == DialogResult.OK)
            {
                FileStream fs = new FileStream("c:\\Users\\Administrator\\Desktop\\" + fileDialog.SafeFileName + "", FileMode.Open);

                StreamReader m_streamReader = new StreamReader(fs);

                m_streamReader.BaseStream.Seek(0, SeekOrigin.Begin);
                string strLine = m_streamReader.ReadLine();
                do
                {

                    strLine = m_streamReader.ReadLine();
                    allstrLine += strLine;

                } while (strLine != null && strLine != "");
                m_streamReader.Close();
                m_streamReader.Dispose();
                fs.Close();
                fs.Dispose();
allstrLine就是读出来后的XML。但是中文字符串是乱码,怎么解决贴上代码谢谢,搞不定
------解决方案--------------------

using(StreamReader sr = new StreamReader("c:\\Users\\Administrator\\Desktop\\" + fileDialog.SafeFileName + "",Encoding.UTF8)
{
sr.ReadToEnd();
}