我生成的XML编码是GBK的,我想在读取的时候把编码改成UTF-8的,有没有人做过呀,急用的,请高手赐教,谢谢了!

解决方案 »

  1.   

    using (StreamReader reader = new StreamReader(path, Encoding.UTF8))
                    {
                        StreamReader.Synchronized(reader);
                        commonFileXml = reader.ReadToEnd();
                        reader.Close();
                    }
      

  2.   


     public static string ToXml(this XDocument doc)
            {
                StringBuilder output = new StringBuilder();            using (XmlWriter writer = XmlWriter.Create(new StringWriterWithEncoding(output), new XmlWriterSettings { Indent = false, Encoding = Encoding.UTF8}))
                {
                    if (writer != null)
                    {
                        doc.Save(writer);
                    }
                }            return output.ToString();
            }
      

  3.   

    问题解决
    解决方法:
    private static void ReaderXml(DataSet thisDataSet, string filename)
            {
                if (thisDataSet == null)
                {
                    return;
                }
                StreamReader inStream = new StreamReader(filename, Encoding.GetEncoding(936));//关键就是这个数字了  936代表转化为GB2312
                thisDataSet.ReadXml(inStream);
                inStream.Close();
            }