Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mengekod dan Menyahkod URL dengan Cekap dalam C?

Bagaimanakah Saya Boleh Mengekod dan Menyahkod URL dengan Cekap dalam C?

Linda Hamilton
Linda Hamiltonasal
2024-12-03 22:04:11427semak imbas

How Can I Efficiently Encode and Decode URLs in C  ?

Merancang Penyelesaian Pengekodan/Penyahkodan URL yang Berkesan dalam C

Tugas pengekodan dan penyahkodan URL untuk memastikan pemindahan data yang lancar sering ditemui dalam pembangunan web. Dalam C , untuk mencapai fungsi ini memerlukan penyelesaian yang mantap.

Fungsi Pengekodan Komprehensif

Satu pendekatan untuk pengekodan URL dalam C ditunjukkan oleh coretan kod berikut:

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

Fungsi ini mengekod aksara tidak patuh dengan teliti mengikut dengan standard pengekodan URL, menjadikannya sesuai untuk menghantar data merentas platform web.

Penyahkodan: Latihan untuk Pembaca

Walaupun tidak diberikan secara eksplisit dalam kod, operasi penyahkodan boleh dilaksanakan sebagai latihan, memberikan peluang yang mencukupi untuk memahami butiran rumit pengendalian URL.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengekod dan Menyahkod URL dengan Cekap 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