shuangmuxiaolin 2015-11-25 08:32
浏览 1441

DataTable转XML奇怪字符

DataTable转XML奇怪字符.
自己拼接的DataTable,转换为XML后没问题。但是插入Oracle之后就出现中文的问号。
非常郁闷。
今天终于解决了。

 private string ConvertDataTableToXML(DataTable xmlDS)
        {
            MemoryStream ms = null;
            XmlTextWriter XmlWt = null;
            try
            {
                ms = new MemoryStream();
                //根据ms实例化XmlWt
                XmlWt = new XmlTextWriter(ms, Encoding.UTF8);
                //获取ds中的数据
                xmlDS.WriteXml(XmlWt);

                int count = (int)ms.Length;
                byte[] temp = new byte[count];

                ms.Seek(0, SeekOrigin.Begin);
                ms.Read( temp, 0, count);
                //返回UTF-8编码的文本
                UTF8Encoding ucode = new UTF8Encoding();
                string returnValue = ucode.GetString(temp).Trim();
                return returnValue;
            }
            catch (Exception)
            {
                return "";
            }
            finally
            {
                //释放资源
                if (XmlWt != null)
                {
                    XmlWt.Close();
                    ms.Close();
                    ms.Dispose();
                }
            }
        }


这里是有问题的代码。

我发现在XML前面有一个奇怪字符。所以将数据流从第三个字符开始取,就没问题了。
代码中改为:
ms.Seek(3, SeekOrigin.Begin);

解决!

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥20 求数据集和代码#有偿答复
    • ¥15 关于下拉菜单选项关联的问题
    • ¥20 java-OJ-健康体检
    • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
    • ¥15 使用phpstudy在云服务器上搭建个人网站
    • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
    • ¥15 vue3+express部署到nginx
    • ¥20 搭建pt1000三线制高精度测温电路
    • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况
    • ¥15 画两个图 python或R