首页 >后端开发 >C++ >如何用 C 语言对 URL 进行编码和解码?

如何用 C 语言对 URL 进行编码和解码?

Barbara Streisand
Barbara Streisand原创
2024-12-08 01:11:12155浏览

How to Encode and Decode URLs in C  ?

C 语言中的 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn