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

How to decode base64 unicode string with T-SQL

无法解码 base64 字符串中的阿拉伯字符。 当我解码时,它必须是这样的:'سلام جیران'(使用 base64encode 网站)。我尝试这样解码:

SELECT CAST(
          CAST(N'' AS XML).value('xs:base64Binary("2LPZhNin2YUg2KzbjNix2KfZhg==")' , 'VARBINARY(MAX)') 
          AS NVARCHAR(MAX)
           ) UnicodeEncoding ;

基于这个答案:Base64 encoding in SQL Server 2005 T-SQL 但是有这样的回应:'돘蓝Ꟙ藙������' 有没有办法正确解码阿拉伯字符?

要将 UTF-8 字符串转换为 nvarchar,您可以使用 CLR 函数(例如这个函数:) or a T-SQL function (such as this one: )。

使用第二个函数,您可以像这样解码数据:

SELECT dbo.DecodeUTF8String(CAST(N'' AS XML).value
('xs:base64Binary("2LPZhNin2YUg2KzbjNix2KfZhg==")','VARBINARY(MAX)'))