加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

sql-server-2005 – 寻求0x0B

发布时间:2021-03-14 05:45:41 所属栏目:编程 来源:网络整理
导读:从SQL列读取一些数据然后将其转换为 XML时呈现此错误: “System.InvalidOperationException:XML文档中存在错误(182,16).— System.Xml.XmlException:”,十六进制值0x0B,是无效字符.” 很公正,大概数据名目不正确.除了,我奈何才气找到祸首罪魁? SELECT * f

从SQL列读取一些数据然后将其转换为 XML时呈现此错误:

“System.InvalidOperationException:XML文档中存在错误(182,16).—> System.Xml.XmlException:”,十六进制值0x0B,是无效字符.”

很公正,大概数据名目不正确.除了,我奈何才气找到祸首罪魁?

SELECT * from Mytable where Column like '%' + char(0x0B)+'%'

返回空.

(显然我实行了全部%char,char,char%组合,以防万一)

办理要领

终于找到了!

.NET XML序列化措施在序列化时会转义无效字符,可是在反序列化之前它就是无法转义它.

因此,我必需搜刮转义的& #xB以找到未转义的0x0B …严峻的不是风趣的家伙!

以是这:

SELECT * from Mytable where Column like '%' + '&#xB' + '%'

现实上会发明这个:

<?xml version="1.0"?>
      <Hashtable><key>313_other_10</key><value>&#xB</value></Hashtable>

固然这看起来像有用的XML,但在以下环境下会抛出无效的字符非常:

XmlSerializer xs = new XmlSerializer(Type.GetType(Hashtable));
    StringReader stringReader = new StringReader(xml);
    obj = xs.Deserialize(stringReader);

很是感激那些起劲参加辅佐的人!这是无价的辅佐!

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读