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

AdmiralMeng 2010-04-16 03:54:39
要生成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?
...全文
487 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
XmlTextWriter xw = new XmlTextWriter(FilePath, System.Text.Encoding.UTF8);
Justin-Liu 2010-04-16
  • 打赏
  • 举报
回复
或许和命令行的编码格式显示有关
liuyileneal 2010-04-16
  • 打赏
  • 举报
回复

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");//保存到磁盘上
Teng_s2000 2010-04-16
  • 打赏
  • 举报
回复
记事本打开,另存为时,选择UTF-8
liuyileneal 2010-04-16
  • 打赏
  • 举报
回复
使用Console.Out应该和计算机的环境有关,你如果保存为一个文件,可以随便按照你想要的格式保存
zsuswy 2010-04-16
  • 打赏
  • 举报
回复
我来学习。。。
KFCILIKEIT 2010-04-16
  • 打赏
  • 举报
回复
学习!!!!
xrongzhen 2010-04-16
  • 打赏
  • 举报
回复
Unicode, GDK , GB2312和大五码就是编码的值,而UTF-8,UTF-16之类就是这个值的表现形式
phhui 2010-04-16
  • 打赏
  • 举报
回复
File.WriteAllText(Server.MapPath(@"aa.xml"), File.ReadAllText(Server.MapPath(@"aa.xml").Replace("gb2312", "utf-8"));
zsuswy 2010-04-16
  • 打赏
  • 举报
回复
sorry,好像我说错了,我保存为其它的编码也仍然是 utf-8。
可能是其它原因。
zsuswy 2010-04-16
  • 打赏
  • 举报
回复
是这样的,这个和你的代码没有关系。
在VS里面打开你的这个.cs源代码文件,然后在菜单里面 File->advance save options(高级保存选项),把你的这个cs文件存为utf-8的格式。

你的代码,我在我机器上不做任何改动,保存后打开里面的的内容是:
<?xml version="1.0" encoding="UTF-8"?>
<data>
<id>99</id>
<content>收到消息</content>
</data>
phhui 2010-04-16
  • 打赏
  • 举报
回复
土方法:生成后将XML当记事本打开,然后替换

62,066

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧