Sql server 如何用T-SQL解码base64 unicode字符串
无法解码base64字符串中的阿拉伯字符。 当我解码时,它一定是这样的:“使用网站”。我试着这样解码:Sql server 如何用T-SQL解码base64 unicode字符串,sql-server,sql-server-2008,tsql,sql-server-2005,base64,Sql Server,Sql Server 2008,Tsql,Sql Server 2005,Base64,无法解码base64字符串中的阿拉伯字符。 当我解码时,它一定是这样的:“使用网站”。我试着这样解码: SELECT CAST( CAST(N'' AS XML).value('xs:base64Binary("2LPZhNin2YUg2KzbjNix2KfZhg==")' , 'VARBINARY(MAX)') AS NVARCHAR(MAX) ) UnicodeEncoding ; 根据这一回答: 但是有这样的反应:'돘蓙Ꟙ藙
SELECT CAST(
CAST(N'' AS XML).value('xs:base64Binary("2LPZhNin2YUg2KzbjNix2KfZhg==")' , 'VARBINARY(MAX)')
AS NVARCHAR(MAX)
) UnicodeEncoding ;
根据这一回答:
但是有这样的反应:'돘蓙Ꟙ藙�����'
有没有办法正确解码阿拉伯语字符?要将UTF-8字符串转换为nvarchar,您可以使用CLR函数(如此:)或T-SQL函数(如此:) 使用第二个函数,您可以如下方式解码数据:
SELECT dbo.DecodeUTF8String(CAST(N'' AS XML).value
('xs:base64Binary("2LPZhNin2YUg2KzbjNix2KfZhg==")','VARBINARY(MAX)'))
问题是二进制数据是UTF-8编码。但是SQL Server nvarchar是UCS-2,请您回答。但这种情况有什么解决办法吗?考虑到我使用一个用UTF-8编码消息的库,然后把它们发送给MS SQL Server,在这个答案中有一些很好的信息:@ MJH谢谢!这是一篇好文章!它就像一个符咒!你救了我的命,英雄@拉兹瓦尔索科尔