首页 新闻 搜索 专区 学院

asp.net动态生成xml编码问题

0
悬赏园豆:200 [已解决问题] 解决于 2011-12-09 11:35

动态生成xml内容,显示到页面上,在ie中查看,无法显示xml页,提示内容应该是编码有问题,不知道怎么解决       

代码大概如下

 XmlDocument xmldoc = new XmlDocument();

          //声明
            XmlDeclaration xmldecl;
            xmldecl = xmldoc.CreateXmlDeclaration("1.0", "UTF-8", null); ;
            xmldecl.Encoding = "GB2312";
                 

             //加入一个根元素
            XmlElement xmlelem = xmldoc.CreateElement("", "YFBGLIST", "");
            xmldoc.AppendChild(xmlelem);
            xmldoc.InsertBefore(xmldecl, xmlelem);
       
       
          //加入另外一个元素
            for (int i = 0; i < rsint; i )
            {
                string[] k = new string[k2];
                k = rs[i].Split('@');
                XmlNode root = xmldoc.SelectSingleNode("YFBGLIST");//查找<Employees>
                XmlElement xe1 = xmldoc.CreateElement("YFBG");//创建一个<Node>节点
                    XmlElement xesub1 = xmldoc.CreateElement("yfbgtitle");
                xesub1.InnerText = k[0];

                xe1.AppendChild(xesub1);//添加到<Node>节点中
                XmlElement xesub2 = xmldoc.CreateElement("researcher");
                xesub2.InnerText = k[3];
                xe1.AppendChild(xesub2);
                XmlElement xesub3 = xmldoc.CreateElement("url");
                xesub3.InnerText =  k[4];
                XmlElement xesub4 = xmldoc.CreateElement("content");
                xesub4.InnerText = k[5];
                xe1.AppendChild(xesub3);

                root.AppendChild(xe1);//
            }
                     MemoryStream stream = new MemoryStream();
            XmlTextWriter writer = new XmlTextWriter(stream, new  System.Text.UTF8Encoding(false));
            writer.Formatting = Formatting.Indented;


            xmldoc.Save(writer);


            StreamReader sr = new StreamReader(stream, new System.Text.UTF8Encoding(false));
            stream.Position = 0;
            string XMLString = sr.ReadToEnd();
            return XMLString;

            sr.Close();
            stream.Close();

Zhuang miao的主页 Zhuang miao | 初学一级 | 园豆:30
提问于:2011-03-05 23:57
< >
分享
最佳答案
0

xmldecl = xmldoc.CreateXmlDeclaration("1.0", "UTF-8", null); ;
xmldecl.Encoding = "GB2312";

将xmldecl.Encoding改为UTF-8试试。

收获园豆:200
dudu | 高人七级 |园豆:36473 | 2011-03-06 09:58
其他回答(3)
0

你的编码方式是GB2312的,如果你的浏览器支持的是UTF-8就会乱码了(一般默认为UTF-8)

所以调整方式有两种

1 将浏览器支持GB2312

2 将你的页面输出为UTF-8的

xiao_p | 园豆:608 (小虾三级) | 2011-03-07 09:30
0

我一般是用StringBuilder拼的   没有出过问题

写代码的小2B | 园豆:4355 (老鸟四级) | 2011-03-07 13:00
0

看看xml的命名空间有问题不

♂镜花水月♂ | 园豆:305 (菜鸟二级) | 2011-04-07 14:42
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册