ホームページ >バックエンド開発 >C++ >C で URL をエンコードおよびデコードするにはどうすればよいですか?

C で URL をエンコードおよびデコードするにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-08 01:11:12156ブラウズ

How to Encode and Decode URLs in C  ?

C での URL のエンコードとデコード

多くのアプリケーションは、URL を介してネットワーク上に送信する必要があるデータを処理します。このようなシナリオでは、特殊文字とスペースが正しく表現されるように URL をエンコードすることが重要です。

URL のエンコード

URL をエンコードする C 関数を次に示します。 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();
}

URL のデコード(演習)

元の質問への回答で述べたように、URL デコードの実装は演習として残されています。この関数は、エスケープされた URL を受け取り、それを元の形式に変換します。

使用例

URL をエンコードするには、入力を渡して url_encode 関数を呼び出すだけです。 string.

URL をデコードするには、デコード関数を実装し、エスケープされた文字列を入力として呼び出します。

以上がC で URL をエンコードおよびデコードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。