我正在尝试更新XML类型的列。
要插入XML字段的文字:“& Decision ↨!协议”
转换为XML的文本:<?xml version="1.0" encoding="utf-16"?><Informations xmlns="http://monschema"><Text lGic="fdf475bc-9fed-4f61-b321-f81949cb51ca" id="71e231e6-ecbd-4848-ba6f-004bdddefb79">& Décision   Accord</Text></Informations>
错误:消息9420,级别16,状态1,第7行 XML解析:第1行,字符263字符不兼容XML
我不明白为什么带有ascii代码“&amp;#x12”的字符有问题。
如果我用&amp;#x20替换&amp;#x12,它就可以了!
你能帮助我吗?
提前谢谢
答案 0 :(得分:1)
字符引用
和
表示XML 1.0中不允许的控制字符。这里真正的问题是它们并不表示文本中的字符。字符“↨!”是U + 21A8向上箭头与基础和U + 203C双排除标记,因此它们应写为↨‼
。
获得奇数字符引用的原因可能是在CP437编码中,“↨!”放在代码位置12和13(十六进制)中。所以这是编码混乱,并且某些转换应用了错误的转换。在XML中,字符引用中的数字始终表示Unicode代码编号。
答案 1 :(得分:0)
这些控制字符为not supported in XML version 1.0 documents。
您应该可以在文档的version
属性中将版本更改为1.1,在这种情况下文档应该验证。
答案 2 :(得分:0)
我解决了我的问题。
此字符来自ORACLE数据库的SQL obtenues视图。 角色 - &gt;在ORACLE上由SQL SERVER上的interpreted解释。
我会在视图中进行替换