#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 — если вы уже получили его в виде текста, вы должны быть в состоянии использовать его без какой-либо дополнительной работы.