Heim >Backend-Entwicklung >C++ >Wie kodiere und dekodiere ich URLs in C?

Wie kodiere und dekodiere ich URLs in C?

Barbara Streisand
Barbara StreisandOriginal
2024-12-08 01:11:12156Durchsuche

How to Encode and Decode URLs in C  ?

URLs in C kodieren und dekodieren

Viele Anwendungen verarbeiten Daten, die über URLs über das Netzwerk übertragen werden müssen. In diesen Szenarien ist es wichtig, die URL zu kodieren, um sicherzustellen, dass Sonderzeichen und Leerzeichen korrekt dargestellt werden.

Kodieren einer URL

Hier ist eine C-Funktion, die a kodiert URL:

#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();
}

Dekodierung einer URL (Übung)

Wie in der Antwort auf die ursprüngliche Frage erwähnt, bleibt Ihnen die Implementierung der URL-Dekodierung als Übung überlassen. Diese Funktion würde eine maskierte URL nehmen und sie zurück in ihr ursprüngliches Format konvertieren.

Beispielverwendung

Um eine URL zu kodieren, rufen Sie einfach die Funktion url_encode auf und übergeben Sie die Eingabe string.

Um eine URL zu dekodieren, implementieren Sie die Dekodierungsfunktion und rufen Sie sie mit der maskierten Zeichenfolge als auf Eingabe.

Das obige ist der detaillierte Inhalt vonWie kodiere und dekodiere ich URLs in C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn