Декодирование строкового xml в .net

#c#

#c#

Вопрос:

Почему,

я хочу декодировать строку, содержащую XML-данные в .net, но эта строка была закодирована на java

 System.Text.UTF8Encoding encoder = new System.Text.UTF8Encoding();
System.Text.Decoder utf8Decode = encoder.GetDecoder();
byte[] todecode_byte = Convert.FromBase64String(data);
int charCount = utf8Decode.GetCharCount(todecode_byte, 0, todecode_byte.Length);
char[] decoded_char = new char[charCount];
utf8Decode.GetChars(todecode_byte, 0, todecode_byte.Length, decoded_char, 0);
result = new String(decoded_char);
return resu<
 

я написал этот код, но он выдает ошибку.
Заранее благодарю.

Комментарии:

1. Из любви ко всему, что является двоичным, пожалуйста, укажите ошибку.

2. Ввод не является допустимой строкой с базовым значением 64, поскольку он содержит неосновной символ 64, более двух символов заполнения или символ пробела среди символов заполнения.

3. @jats: Тогда, похоже, это не base64 для начала — что заставило вас так подумать?

Ответ №1:

Предполагая, что это действительно UTF-8, который затем кодируется в base64, вы должны просто иметь возможность писать:

 byte[] binary = Convert.FromBase64String(data);
string text = Encoding.UTF8.GetString(binary);
 

Однако, похоже, что для начала он не был закодирован в base64 — если вы уже получили его в виде текста, вы должны быть в состоянии использовать его без какой-либо дополнительной работы.