gpt4 book ai didi

sql-server - 在 SQL Server 中将 UTF8 转换为 uTF16

转载 作者:数据小太阳 更新时间:2023-10-29 02:08:41 29 4
gpt4 key购买 nike

我有一个应用程序,它从一些用 PHP 编写的 Web 服务接收 XML,并将其插入到 SQL Server 数据库中。当我尝试插入接收到的包含波兰语变音符的 XML 时,我收到如下错误:

XML parsing: line 2, character 703, illegal xml character

我试着做这样的事情:

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,然后再次将其转换为普通 varchar,然后再转换为 XML,并将其插入到我的表中,但是看起来它并没有改变这个 XML 中的任何字符,它只是改变了变量的类型,并没有解决我的问题。

我还发现一些人的建议,可以通过编写一个程序来解决类似的问题,该程序对变量中的每个字符(在我的例子中是 XML)进行循环并手动更改它的编码,但是这个人也说它可能有效减缓。这真的是解决我问题的唯一选择吗?

最佳答案

尝试转换为 UNICODE:

DECLARE @xmlstr NVARCHAR(MAX) --<--
SELECT @xmlstr = N'(some sample XML that contains diacritical characters)'; --<-- N''

DECLARE @xml XML
SELECT @xml = CAST(@xmlstr AS XML)

INSERT INTO dbo.vos_DirectXML_ut
(
ValidXML
, synchronization_time
, synchronization_type
, MethodName
)
SELECT
@xml
, GETDATE()
, @SynchroType
, @method

关于sql-server - 在 SQL Server 中将 UTF8 转换为 uTF16,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16892671/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com