Я создаю приложение на сокете в c ++, где мне нужно декодировать строки base64. Для этого я использую код Рене Ниффенегера (https://renenyffenegger.ch/notes/development/Base64/Encoding-and-decoding-base-64-with-cpp)). Строка ret
из функции base64_decode
, которую я обнаружил, всегда имеет длину всего 4 символа, и после того, как я потратил некоторое время на отладку, я понял, все сводится к этому:
unsigned char1 = 255;
unsigned char2 = 216;
unsigned char3 = 255;
unsigned char4 = 224;
unsigned char5 = 0;
unsigned char6 = 16;
unsigned char7 = 74;
unsigned char8 = 70;
unsigned char9 = 73;
string str;
str += char1;
str += char2;
str += char3;
str += char4;
str += char5;
str += char6;
str += char7;
str += char8;
str += char9;
По какой-то причине этот код добавляет только char1
, char2
, char3
и char4
к str
, а остальные символы полностью игнорируются. Почему это так и что я могу сделать, чтобы это исправить?