当前位置:编程学习 > C#/ASP.NET >>

如何生成utf-8格式的xml?

要生成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? --------------------编程问答-------------------- 土方法:生成后将XML当记事本打开,然后替换 --------------------编程问答-------------------- 是这样的,这个和你的代码没有关系。
在VS里面打开你的这个.cs源代码文件,然后在菜单里面 File->advance save options(高级保存选项),把你的这个cs文件存为utf-8的格式。

你的代码,我在我机器上不做任何改动,保存后打开里面的的内容是:
<?xml version="1.0" encoding="UTF-8"?>
<data>
  <id>99</id>
  <content>收到消息</content>
</data> --------------------编程问答-------------------- sorry,好像我说错了,我保存为其它的编码也仍然是 utf-8。
可能是其它原因。 --------------------编程问答-------------------- File.WriteAllText(Server.MapPath(@"aa.xml"), File.ReadAllText(Server.MapPath(@"aa.xml").Replace("gb2312", "utf-8")); --------------------编程问答-------------------- Unicode, GDK , GB2312和大五码就是编码的值,而UTF-8,UTF-16之类就是这个值的表现形式 --------------------编程问答-------------------- 学习!!!!
--------------------编程问答-------------------- 我来学习。。。 --------------------编程问答-------------------- 使用Console.Out应该和计算机的环境有关,你如果保存为一个文件,可以随便按照你想要的格式保存 --------------------编程问答-------------------- 记事本打开,另存为时,选择UTF-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");//保存到磁盘上
--------------------编程问答-------------------- 或许和命令行的编码格式显示有关 --------------------编程问答-------------------- XmlTextWriter xw = new XmlTextWriter(FilePath, System.Text.Encoding.UTF8);
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,