Maison > développement back-end > C++ > Comment encoder et décoder des URL en C ?

Comment encoder et décoder des URL en C ?

Barbara Streisand
Libérer: 2024-12-08 01:11:12
original
160 Les gens l'ont consulté

How to Encode and Decode URLs in C  ?

Encodage et décodage des URL en C

De nombreuses applications gèrent les données qui doivent être transmises à travers le réseau via des URL. Dans ces scénarios, il est crucial d'encoder l'URL pour garantir que les caractères spéciaux et les espaces sont représentés correctement.

Encodage d'une URL

Voici une fonction C qui encode un 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();
}
Copier après la connexion

Décoder une URL (Exercice)

Comme mentionné dans la réponse à la question d'origine, la mise en œuvre du décodage d'URL est laissée comme un exercice pour vous. Cette fonction prendrait une URL échappée et la reconvertirait dans son format d'origine.

Exemple d'utilisation

Pour encoder une URL, appelez simplement la fonction url_encode en passant l'entrée string.

Pour décoder une URL, implémentez la fonction de décodage et appelez-la avec la chaîne d'échappement comme entrée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal