Как декодировать строку unicode base64 с помощью T-SQL - PullRequest
0 голосов
/ 19 мая 2018

Невозможно декодировать арабские символы в строке base64.Когда я декодирую, это должно быть примерно так: 'سلام جیران' (используя base64encode веб-сайт).Я пытаюсь декодировать так:

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

Основываясь на этом ответе: Кодировка Base64 в SQL Server 2005 T-SQL Но получим ответ, подобный этому: '돘 蓙 Ꟙ 藙 ����� «Есть ли способ правильно декодировать арабские символы?

1 Ответ

0 голосов
/ 20 мая 2018

Чтобы преобразовать строку UTF-8 в nvarchar, вы можете использовать функцию CLR (например, такую: https://stackoverflow.com/a/14041069/1187211) или функцию T-SQL (например, такую: https://stackoverflow.com/a/28412587/1187211).

Используя вторую функцию, вы можете декодировать ваши данные следующим образом:

SELECT dbo.DecodeUTF8String(CAST(N'' AS XML).value
('xs:base64Binary("2LPZhNin2YUg2KzbjNix2KfZhg==")','VARBINARY(MAX)'))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...