要生成utf-8的xml文件,用以下代码生成的是gb2312格式static void Main(string[] args)
{
            XmlDocument doc = new XmlDocument();
            XmlNode docNode = doc.CreateXmlDeclaration("1.0", "UTF-8", null);
            doc.AppendChild(docNode);            // 创建根
            XmlNode root = doc.CreateElement("data");
            doc.AppendChild(root);            
            XmlNode idNode = doc.CreateElement("id");   
            idNode.AppendChild(doc.CreateTextNode("99"));   
            root.AppendChild(idNode);            
            XmlNode contentNode = doc.CreateElement("content");  
            contentNode.AppendChild(doc.CreateTextNode("收到消息"));    
            root.AppendChild(contentNode);            doc.Save(Console.Out);
            Console.ReadLine();
}这句XmlNode docNode = doc.CreateXmlDeclaration("1.0", "UTF-8", null);好像没有作用,改成utf-8还是生成gb2312,最后打印出的xml为
<?xml version="1.0" encoding="gb2312"?>
<data>
  <id>99</id>
  <content>收到的消息</content>
</data>怎么改成utf-8?

解决方案 »

  1.   

    土方法:生成后将XML当记事本打开,然后替换
      

  2.   

    是这样的,这个和你的代码没有关系。
    在VS里面打开你的这个.cs源代码文件,然后在菜单里面 File->advance save options(高级保存选项),把你的这个cs文件存为utf-8的格式。你的代码,我在我机器上不做任何改动,保存后打开里面的的内容是:
    <?xml version="1.0" encoding="UTF-8"?>
    <data>
      <id>99</id>
      <content>收到消息</content>
    </data>
      

  3.   

    sorry,好像我说错了,我保存为其它的编码也仍然是 utf-8。
    可能是其它原因。
      

  4.   

    File.WriteAllText(Server.MapPath(@"aa.xml"), File.ReadAllText(Server.MapPath(@"aa.xml").Replace("gb2312", "utf-8"));
      

  5.   

    Unicode, GDK , GB2312和大五码就是编码的值,而UTF-8,UTF-16之类就是这个值的表现形式
      

  6.   

    使用Console.Out应该和计算机的环境有关,你如果保存为一个文件,可以随便按照你想要的格式保存
      

  7.   

    记事本打开,另存为时,选择UTF-8
      

  8.   


       XmlDocument doc = new XmlDocument();
                
                XmlNode docNode = doc.CreateXmlDeclaration("1.0", "UTF-8", null);
                doc.AppendChild(docNode);            // 创建根
                XmlNode root = doc.CreateElement("data");
                doc.AppendChild(root);
                XmlNode idNode = doc.CreateElement("id");
                idNode.AppendChild(doc.CreateTextNode("99"));
                root.AppendChild(idNode);
                XmlNode contentNode = doc.CreateElement("content");
                contentNode.AppendChild(doc.CreateTextNode("收到消息"));
                root.AppendChild(contentNode);
                doc.Save(@"e:\message.xml");//保存到磁盘上
      

  9.   

    XmlTextWriter xw = new XmlTextWriter(FilePath, System.Text.Encoding.UTF8);