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

Comment puis-je encoder et décoder efficacement des URL en C ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-03 22:04:11421parcourir

How Can I Efficiently Encode and Decode URLs in C  ?

Concevoir une solution efficace d'encodage/décodage d'URL en C

La tâche d'encodage et de décodage des URL pour garantir un transfert de données transparent est souvent rencontrée dans développement web. En C, la réalisation de cette fonctionnalité nécessite une solution robuste.

Une fonction de codage complète

Une approche du codage d'URL en C est illustrée par l'extrait de code suivant :

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

        // Preserve alphanumeric and designated characters
        if (isalnum(c) || c == '-' || c == '_' || c == '.' || c == '~') {
            escaped << c;
            continue;
        }

        // Percent-encode non-compliant characters
        escaped << uppercase;
        escaped << '%' << setw(2) << int((unsigned char) c);
        escaped << nouppercase;
    }

    return escaped.str();
}

Cette fonction encode méticuleusement les caractères non conformes conformément à la norme d'encodage d'URL, la rendant ainsi adaptée à transmettre des données sur des plateformes Web.

Décodage : un exercice pour le lecteur

Bien qu'elle ne soit pas explicitement prévue dans le code, l'opération de décodage peut être mise en œuvre sous forme d'exercice, à condition amplement l'occasion de saisir les détails complexes de la gestion des URL.

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!

Déclaration:
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