DataTable转XML奇怪字符

问题描述

DataTable转XML奇怪字符.自己拼接的DataTable,转换为XML后没问题。但是插入Oracle之后就出现中文的问号。非常郁闷。今天终于解决了。privatestringConvertDataTableToXML(DataTablexmlDS){MemoryStreamms=null;XmlTextWriterXmlWt=null;try{ms=newMemoryStream();//根据ms实例化XmlWtXmlWt=newXmlTextWriter(ms,Encoding.UTF8);//获取ds中的数据xmlDS.WriteXml(XmlWt);intcount=(int)ms.Length;byte[]temp=newbyte[count];ms.Seek(0,SeekOrigin.Begin);ms.Read(temp,0,count);//返回UTF-8编码的文本UTF8Encodingucode=newUTF8Encoding();stringreturnValue=ucode.GetString(temp).Trim();returnreturnValue;}catch(Exception){return"";}finally{//释放资源if(XmlWt!=null){XmlWt.Close();ms.Close();ms.Dispose();}}}这里是有问题的代码。我发现在XML前面有一个奇怪字符。所以将数据流从第三个字符开始取,就没问题了。代码中改为:ms.Seek(3,SeekOrigin.Begin);解决!

解决方案

解决方案二:
出现中文的问号-》那是乱码。
解决方案三:
//返回UTF-8编码的文本你查下数据库是什么字符集或许是gb2312感觉你的问题在于转成了UTF-8
解决方案四:
引用1楼duanzi_peng的回复:

出现中文的问号-》那是乱码。

不是乱码,在Windows字符集下都没问题。我断点获取字符串,拷贝到Txt文本,Word中都没有任何异常。但是粘帖到PLSql中就出现一个奇怪的小点点。Insert到Oralce就出现一个中文的问号了。
解决方案五:
引用2楼byronqiji的回复:

//返回UTF-8编码的文本你查下数据库是什么字符集或许是gb2312感觉你的问题在于转成了UTF-8

不是因为转成了UTF-8的原因这里是解决后的代码:privatestringConvertDataTableToXML(DataTablexmlDS){MemoryStreamms=null;XmlTextWriterXmlWt=null;try{ms=newMemoryStream();//根据ms实例化XmlWtXmlWt=newXmlTextWriter(ms,Encoding.UTF8);//获取ds中的数据xmlDS.WriteXml(XmlWt);intcount=(int)ms.Length-3;byte[]temp=newbyte[count];ms.Seek(3,SeekOrigin.Begin);ms.Read(temp,0,count);//返回UTF-8编码的文本UTF8Encodingucode=newUTF8Encoding();stringreturnValue=ucode.GetString(temp).Trim();returnreturnValue;}catch(Exception){return"";}finally{//释放资源if(XmlWt!=null){XmlWt.Close();ms.Close();ms.Dispose();}}}
解决方案六:
这很正常!显然你的XML文件用记事本之类的低档文本编辑器编辑过用于是保存为utf-8编码的,所以有一个3字节的BOM(efbbbf)
解决方案七:
用于是由于之误由于是保存为utf-8编码的,所以有一个3字节的BOM

时间: 2024-10-06 09:31:41

DataTable转XML奇怪字符的相关文章

xml-DataTable转XML奇怪字符

问题描述 DataTable转XML奇怪字符 DataTable转XML奇怪字符. 自己拼接的DataTable,转换为XML后没问题.但是插入Oracle之后就出现中文的问号. 非常郁闷. 今天终于解决了. private string ConvertDataTableToXML(DataTable xmlDS) { MemoryStream ms = null; XmlTextWriter XmlWt = null; try { ms = new MemoryStream(); //根据ms

DataTable和Xml互相转化

需求 Sql表查询得到的DataTable要转化成XML,就顺便写个测试的例子, 实现的功能 利用反射实现了DataTable,实体对象,XML的互转. 达到的效果 Git代码:https://git.oschina.net/dingxiaowei/XMLConvertor.git 在线查看代码:https://git.oschina.net/dingxiaowei/XMLConvertor#git-readme Code: sql if exists (select * from sysobj

急问!jsp中的奇怪字符乱码问题

问题描述 自己做了一个小系统,数据库和JSP页面都用的GB2312码,其中做了一个模糊查询功能,当用中文查询时,可以通过${}得到正常的模糊查询的中文结果,但是再点击这些中文结果的链接想得到具体结果时,链接到的下一页里的中文就是乱码,而且页面中也查不到结果.用英文做查询的时候就很正常.想知道什么原因,高分急问呀!! 解决方案 解决方案二:最好是具体代码展示一下才好看看因为不一定是因为你哪的原因解决方案三:<astyle="COLOR:#2b919f"href="ecdi

XML 非法字符(转义字符)_XML基础

如往常一样, 客户发给我一个xml文件, 用来更新数码课堂日程安排--是一个js读取xml文件达到鼠标经过日历显示每日课程安排的效果,有类于Ajax数据读取(只不过数据是完全静态更新)的脚本程序 由于是两方来完成整个日程更新(客户把制作页面和更新网站分开), 给我的xml文件总是有问题, 由于经常做,知道制作方在html代码水平上还是比较初级, 所以每次更新前总要对他们给的文件校正, 果然还是有问题, 如往常一样,我检查文件内容的每个标签是否完整, 检查出一处错误,感觉应该OK了, 可是页面还是

j2me中解析xml文件格式字符串报错,希望各位高手帮忙

问题描述 这是解析xml文件时报的错误,但是能正常解析,org.xmlpull.v1.XmlPullParserException:attrvaluedelimitermissing!(position:START_TAG<fontcolor='1.0'>@1:445injava.io.InputStreamReader@18b537a2)当数据只有一条时不报错误,但是数据量多时就报了比如说<?xmlversion="1.0"encoding="utf-8&

DataTable Select 相识的字符

问题描述 selectUesrIDfromuserinfowherefatherin(left(@father,len(father)))orderbylayerdesc在SQLServer里面这一条语句是可以使用的.stringstrfather="'123456'";dt.Select("fatherIN(LEFT("+strfather+",LEN(father)))","LayerASC");这样写不行,我要查找fat

asp.net将datatable数据转换为xml下载

问题描述 asp.net将datatable数据直接转换为xml并下载吗?现在的程序是将datatable数据转换为xml文件并保持在服务器,然后再下载.不知道能跳过"将datatable生成xml文件保存在服务器"这一步,直接将datatable转换成xml文件下载吗? 解决方案 解决方案二:直接将xml字符串response出来就可以了啊,指定返回的是xml,你查下文件下载,思路一样的解决方案三:有点不能理解将datatable数据转换为xml文件并保持在服务器和将datatabl

Thinking XML:创建XML的好建议

XML的使用越来越广泛,但是很多XML的结构并不好.即便结构良好,也常常设计得很糟,使得处理和维护非常困难.而大部分用于XML的基础结构使问题更加恶化.于是出现了关于XML最佳实践的公开讨论,比如Henri Sivonen 的文章"HOWTO Avoid Being Called a Bozo When Producing XML".Uche Ogbuji经常在IBM developerWorks上讨论XML最佳实践,这里他提出了在这些文章中讨论的要点. 几年来我一直在本专栏和其他系列

ADO.NET 中的 XML 特性

ado|xml 毫无疑问,XML 及其一些相关技术(包括 XPath.XSL Transformation 和 XML Schema)是 ADO.NET 的基础.与 ADO 相比,ADO.NET 对象模型的互操作性得到很大的提高,而事实上,XML 正是为此发挥重要作用的关键元素.在 ADO 中,XML 只是一个用于保留断开连接的记录集的内容的(非默认)I/O 格式.而 XML 在 ADO.NET 的构建和交互方面的参与则深入得多.可以用以下几点来概括 ADO.NET 与 XML 的更强的交互和集