Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Encode/Decode URLs in C++ [closed]

Does anyone know of any good C++ code that does this?

like image 217
user126593 Avatar asked Sep 30 '08 19:09

user126593


2 Answers

I faced the encoding half of this problem the other day. Unhappy with the available options, and after taking a look at this C sample code, i decided to roll my own C++ url-encode function:

#include <cctype> #include <iomanip> #include <sstream> #include <string>  using namespace std;  string url_encode(const string &value) {     ostringstream escaped;     escaped.fill('0');     escaped << hex;      for (string::const_iterator i = value.begin(), n = value.end(); i != n; ++i) {         string::value_type c = (*i);          // Keep alphanumeric and other accepted characters intact         if (isalnum(c) || c == '-' || c == '_' || c == '.' || c == '~') {             escaped << c;             continue;         }          // Any other characters are percent-encoded         escaped << uppercase;         escaped << '%' << setw(2) << int((unsigned char) c);         escaped << nouppercase;     }      return escaped.str(); } 

The implementation of the decode function is left as an exercise to the reader. :P

like image 129
xperroni Avatar answered Sep 17 '22 16:09

xperroni


Answering my own question...

libcurl has curl_easy_escape for encoding.

For decoding, curl_easy_unescape

like image 21
user126593 Avatar answered Sep 20 '22 16:09

user126593