Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何用T-SQL解码base64 unicode字符串_Sql Server_Sql Server 2008_Tsql_Sql Server 2005_Base64 - Fatal编程技术网

Sql server 如何用T-SQL解码base64 unicode字符串

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 ; 根据这一回答: 但是有这样的反应:'돘蓙Ꟙ藙

无法解码base64字符串中的阿拉伯字符。 当我解码时,它一定是这样的:“使用网站”。我试着这样解码:

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谢谢!这是一篇好文章!它就像一个符咒!你救了我的命,英雄@拉兹瓦尔索科尔