我有一个应用程序从一些用 PHP 编写的 Web 服务接收 XML 并将其插入 SQL Server 数据库。当我尝试插入接收到的包含波兰语变音字符的 XML 时,我收到如下错误:
XML 解析:第 2 行,字符 703,非法 xml 字符
我试图做这样的事情:
DECLARE @xml XML;
SET @xml = '(here I paste some sample XML that contains diacritical characters)';
SELECT @xml = CAST(@xmlstr AS XML);
INSERT INTO vos_DirectXML_ut(ValidXML,synchronization_time,synchronization_type,MethodName)
VALUES(@xml,GETDATE(),@SynchroType,@method);
ValidXML
是一个XML
类型列。
我用谷歌搜索找到一些解决方案,我找到了 Utf8String:http: //msdn.microsoft.com/en-us/library/ms160893 (v=sql.90).aspx
我安装了它,并尝试将 XML 转换为 Utf8String ,然后将其再次转换为 normal varchar
,然后再转换为XML
,并将其插入到我的表中,但看起来它并没有更改此 XML 中的任何字符,它只是更改了变量的类型它并没有解决我的问题。
我还发现了一些人的建议,可以通过编写一个对变量(在我的情况下为 XML)中的每个字符进行循环并手动更改其编码的过程来解决类似的问题,但是这个人也说它可能工作缓慢。这真的是解决我的问题的唯一选择吗?