问题描述
- 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);解决!
解决方案
时间: 2024-09-17 04:54:08