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

解决!

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐