Base64.getDecoder (). Декодировать в C # - PullRequest
0 голосов
/ 05 марта 2019

Мне нужен эквивалентный код C # для Base64.getDecoder().decode кода Java.Я пробовал что-то вроде следующего в C #

byte[] decodedBytes = Convert.FromBase64String(embedCode);
string decodedText = Encoding.UTF8.GetString(decodedBytes);
byte[] bytes = Encoding.ASCII.GetBytes(decodedText);

Но строка содержит некоторые специальные символы, такие как 0�� \ u0002B \ 0� * - \ u0017���c \ u001e�a ֺ] ���qr`.Как я могу добиться этого в C #

1 Ответ

0 голосов
/ 05 марта 2019

'\ u0002' является символом «начало текста» для кодировки Unicode.

Поэтому используйте

byte[] decodedBytes = Convert.FromBase64String(embedCode);
string decodedText = Encoding.Unicode.GetString(decodedBytes);

И, пожалуйста, не пытайтесь кодировать текст Unicode как ASCII, Unicodeимеет более широкий диапазон символов, который ASCII не сможет распознать.Поэтому используйте кодировку Unicode снова для записи в байты.

...