Я пытаюсь прочитать кодированный файл base64 из изображения. Я проанализировал документ и извлек содержимое base64, но когда я попытался декодировать информацию в байтовый массив, я получил ошибку, что отправляемая мной строка base64 повреждена. Я пытаюсь извлечь аудиофайл в кодировке Base64 из JPEG.
Я проверил строку и не могу найти проблему, может, вы, ребята, можете мне помочь?
Исключение FormatException происходит в:
Convert.FromBase64String(base64AudioString);
Прилагается, пожалуйста, найдите код:
string path = @"D:\Projects\200308 - ImageReader\ConsoleApp1\";
// --- Read JPG ---
byte[] jpegBytes = File.ReadAllBytes(path + "IMG_20190905_132110.vr.jpg");
var asString = Encoding.Unicode.GetString(jpegBytes);
// --- Check for GAUDIO-Infos ---
var start = asString.IndexOf("GAudio:Data=") + 13; // asString.IndexOf("<x:xmpmeta");
var end = asString.IndexOf("\"", start); // asString.IndexOf("</x:xmpmeta>");
if(start != -1 && end != -1)
{
// Parse Base64 Part
string base64AudioString = asString.Substring(start, end - start);
//base64AudioString = base64AudioString.Replace('-', '+').Replace('_', '/').PadRight(4 * ((base64AudioString.Length + 3) / 4), '='); // Validate
//File.WriteAllText(path + "IMG_20190905_132110.vr.jpg.base64string", base64AudioString); // Export string into file
// Write Byte Array
byte[] base64ByteArray = Convert.FromBase64String(base64AudioString);
File.WriteAllBytes(path + "IMG_20190905_132110.vr.jpg.gaudio", base64ByteArray);
}
Вот также пример файла, который я пытаюсь проанализировать: https://drive.google.com/open?id=1n7dE5U0YBRKiQzH4TovT2acSubuLt_u2
РЕДАКТИРОВАТЬ: Я понял, что кодировка должна быть: Encoding.Default.GetString (jpegBytes); // не кодируем ASCII