107 votes

Encoder / décoder les URL en C ++

Est-ce que quelqu'un connaît un bon code C ++ qui fait cela

101voto

xperroni Points 774

J'ai fait face à la moitié de l'encodage de ce problème l'autre jour. Insatisfaite des options disponibles, et après avoir jeté un œil à cet exemple de code C , j'ai décidé de lancer ma propre fonction de codage d'URL C ++:

 #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 << '%' << setw(2) << int((unsigned char) c);
    }

    return escaped.str();
}
 

L'implémentation de la fonction de décodage est laissée à l'exercice. : P

94voto

user126593 Points 678

Répondre à ma propre question ...

libcurl a curl_easy_escape

7voto

user126593 Points 678

Et le code source ...

http://www.codeguru.com/cpp/cpp/string/conversions/article.php/c12759

Le corps doit comporter au moins 30 caractères.

7voto

idontwanttortfm Points 2092

CGICC inclut des méthodes pour encoder et décoder les URL. form_urlencode et form_urldecode

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X