首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL Server无法从XML字符串解析CDATA

SQL Server无法从XML字符串解析CDATA
EN

Stack Overflow用户
提问于 2016-06-16 22:18:00
回答 1查看 465关注 0票数 2

我正在尝试解析UTF-8编码的XML字符串。

代码语言:javascript
复制
declare @xml varchar(max) = '<?xml version="1.0" encoding="UTF-8"?>
<Message>
    <![CDATA[’]]>               
</Message>'

select cast(cast(@xml as varchar(max)) as xml)

执行这个查询会给我一个错误。

代码语言:javascript
复制
Msg 9420, Level 16, State 1, Line 6
XML parsing: line 3, character 11, illegal xml character

如果我将UTF-8编码移除或替换为UTF-16,效果会很好。有什么关系?

我尝试使用C#控制台应用程序解析这个字符串,它成功地解析了XML。是SQL Server的bug吗?

SQL Server版本:

Microsoft SQL Server 2008 R2 (SP2) - 10.50.4042.0 (X64) Mar 26 2015 21:18:04版权所有(c) Windows NT 6.2 (Build 9200:)上的Microsoft Corporation Developer Edition (64位)

EN

回答 1

Stack Overflow用户

发布于 2016-06-16 23:18:46

该字符(右引号)在这里编码为0x2019,它不是有效的UTF-8字符,它是UTF-16。查看这个关于Unicode character 0x2019的有帮助的页面。

它在.Net中工作,因为.Net字符串是UTF-16字符串。

编辑:如果您将上面的SQL代码片段保存为SSMS中的UTF-8,那么它将成功执行。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37861851

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档