Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mengekod dan Menyahkod URL dalam C?

Bagaimana untuk Mengekod dan Menyahkod URL dalam C?

Barbara Streisand
Barbara Streisandasal
2024-12-08 01:11:12151semak imbas

How to Encode and Decode URLs in C  ?

Pengekodan dan Penyahkodan URL dalam C

Banyak aplikasi mengendalikan data yang perlu dihantar ke seluruh rangkaian melalui URL. Dalam senario ini, adalah penting untuk mengekod URL bagi memastikan aksara dan ruang khas diwakili dengan betul.

Pengekodan URL

Berikut ialah fungsi C yang mengekodkan 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();
}

Menyahkod URL (Latihan)

Seperti yang dinyatakan dalam jawapan kepada soalan asal, melaksanakan penyahkodan URL dibiarkan sebagai latihan untuk anda. Fungsi ini akan mengambil URL yang dilepaskan dan menukarnya kembali kepada format asalnya.

Contoh Penggunaan

Untuk mengekod URL, hanya panggil fungsi url_encode yang menghantar input rentetan.

Untuk menyahkod URL, laksanakan fungsi penyahkodan dan panggilnya dengan rentetan yang terlepas sebagai input.

Atas ialah kandungan terperinci Bagaimana untuk Mengekod dan Menyahkod URL dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn