Я использовал сжатие zlib для возврата строки.Разница в закодированной и декодированной строке
void StatsClientImpl::sendToServer(std::stringstream &sstr) // to include an update interval version
{
std::string error_msg = "";
std::stringstream temp(AppState::getPid() + "," + AppState::getInstallOS());
temp << sstr.str();
std::string s = zlib_compress(temp.str());
.......
zlib_compress был, как определено в: https://panthema.net/2007/0328-ZLibString.html
Тогда я сделал: std::cout << s.size() <<"\n";
было показано Размер строки, чтобы быть 18.
Тогда я сделал:
CURL *handle = curl_easy_init();
char* o = curl_easy_escape(handle, s.data(), s.size());
std::string bin(o);
std::cout << o <<"\n";
char* i= curl_easy_unescape(handle, bin.data(), bin.size(), NULL);
std::string in(i);
std::cout << i << in.size() <<"\n";
Это дало мне следующий результат:
x%DA%D3%D1%81%80%E2%92%D2%B44%1D%03%00%1BW%03%E5
x??с??Ҵ413
x%DA%D3%D1%81%80%E2%92%D2%B44%1D%03
Я проходил это в качестве входной строки:
,,,,,,stuff,0
Почему существует разница в декодированных и закодированных строк? Как это исправить?
Спаситель! :) Мне просто нужно запустить некоторые тесты на моей стороне сервера, тогда я приму свой ответ! –
Но у меня вопрос. Почему это не происходит в 'bin (o)'? –
Кроме того, если я пытаюсь декодировать эту строку в javascript, какую функцию я должен использовать? –