>백엔드 개발 >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 함수를 호출하면 됩니다. 문자열.

URL을 디코딩하려면 디코딩 기능을 구현하고 이스케이프된 문자열을 입력하세요.

위 내용은 C에서 URL을 인코딩하고 디코딩하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.