a11aud
@a11aud

Почему возникает ошибка при декодировании base64 из c++ в python?

Есть программа, написанная на QT (c++). Программа читает файл, кодирует его в base64 и отправляет эту строку на сервер. Сервер расшифровывает и записывает обратно в файл. Почему-то часть файла искажается (это изображение). Если картинку на сервер отправлять через клиентский скрипт на python, то искажений нет.

Товарищ сказал, что вероятнее всего имеют место быть искажения в реализации алгоритма кодирования base64 (разные RFC, в qt старый). Кто что может сказать по этому поводу? Как можно обойти? Может какая-то современная реализация есть?

P.S. Да, я знаю, что можно отправлять файл, не кодируя его. Но здесь есть некотороые особенности, из-за которых кодировать все же приходится.
  • Вопрос задан
  • 4936 просмотров
Пригласить эксперта
Ответы на вопрос 4
@Ualde
Ну, как-то гадание выходит. Если в одном случае при загрузке искажений нет, значит, наиболее вероятно — идет неверная загрузка в первом случае.

Пробовали декодировать с помощью всяких онлайн декодеров? Например, base64.ru/
Ответ написан
mejedi
@mejedi
Ну так посмотрите, что шлет программа.
Посмотрите вот-это на всякий случай en.wikipedia.org/wiki/Base64#Variants_summary_table
Ответ написан
barker
@barker
Очень странно. Если бы «разные base64» были, то есть косяки на уровне передачи, то получившийся файл был бы такой косячный, что просто бы не открылся. Если «есть искажения», то я тоже за то, что исходный сервер уже искажённую картинку пытается слать.
Ответ написан
Комментировать
AxisPod
@AxisPod
А не теряются ли символы = в конце закодированной строки? Да и приведите примеры.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы