shuangmuxiaolin
2015-11-25 08:32 阅读 1.4k

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);

解决!

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

相关推荐