【发布时间】:2014-03-25 08:58:16
【问题描述】:
我有一个存储过程,我正在调用一个返回 XML 的 Web 服务。为了能够阅读瑞典语字符,我这样做:
select @xml = CAST(REPLACE(CAST(@response as nvarchar(max)), 'utf-8', 'utf-16') as xml)
@response 是我从 Web 服务获得的响应。这确实使它能够读取瑞典语字符,但它并没有改变这样一个事实,即使用&lt; 和&gt; 而不是< 和>,XML 看起来仍然很糟糕。
我该如何更改?
编辑--- 这就是我对 xml 响应所做的:
DECLARE @obj int
DECLARE @Url nvarchar (200)
DECLARE @response varchar(8000)
DECLARE @xml XML
EXEC sp_OACREATE 'MSXML2.ServerXMLHTTP', @obj OUT
EXEC sp_OAMethod @obj, 'open', NULL, 'GET', @Url, false
EXEC sp_OAMethod @obj, 'send'
EXEC sp_OAGetProperty @obj, 'responsetext', @response OUT
select @xml = CAST(REPLACE(CAST(@response as nvarchar(max)), 'utf-8','utf-16') as xml)
编辑 2---- 这是 xml 响应:
【问题讨论】:
-
@response是什么数据类型。可以在@response中发布内容示例吗? -
@MikaelEriksson 我做了一个编辑 :) 它是 varchar 类型
-
好的,但是内容是什么。我看到有一些带有 utf-8 编码的 XML,但是看看 < 会发生什么。以及如何处理它,您必须显示内容。
-
@MikaelEriksson 我将响应的图片放入其中,因为堆栈会自动翻译 & lt;到
标签: sql-server xml stored-procedures