기본 콘텐츠로 건너뛰기

윈도우에서 오라클19c 설치 중 ins-35180 오류 발생 시 조치 방법

C++ URL 인코딩 (== 퍼센트 인코딩)

 소스 코드는 아래와 같습니다.
/**
 * 주어진 문자열을 URL 인코딩하여 반환함.
 *
 * 주요 코드 출처: http://codepad.org/lCypTglt
 *
 * @param s utf-8로 인코딩된 멀티바이트 문자열.
 *                (utf-8이 아니면 웹에서 제대로 인식하지 못할 수 있습니다.)
 *  @return URL 인코딩된 문자열
 */
std::string UrlEncode(const std::string &s)
{
    //RFC 3986 section 2.3 Unreserved Characters (January 2005)
    // 참고: http://ko.wikipedia.org/wiki/퍼센트_인코딩
    const std::string unreserved = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_.~";

    std::string escaped="";
    for(size_t i=0; i<s.length(); i++)
    {
        if (unreserved.find_first_of(s[i]) != std::string::npos)
        {
            escaped.push_back(s[i]);
        }
        else
        {
            escaped.append("%");
            char buf[3];

            /* char를 unsigned char로 바꿔주어야 합니다.
             * (그렇지 않으면 한글 등의 문자를 제대로 변환하지 못합니다.)
             */
            sprintf(buf, "%.2X", (unsigned char) s[i]);
            escaped.append(buf);
        }
    }
    return escaped;
}


참고 자료
  [1] 소스코드 참고: http://codepad.org/lCypTglt
  [2] 위 소스코드를 발견한 곳: http://www.zedwood.com/article/cpp-urlencode-function
  [3] 퍼센트 인코딩에 대한 정보: http://ko.wikipedia.org/wiki/퍼센트_인코딩

댓글

이 블로그의 인기 게시물

프로세스 강제 종료 불가 시.

특정 프로세스를 강제 종료 하려는데... "실행 중인 작업 인스턴스가 없습니다." 이런 메시지가 나타나면서 종료가 안되는 문제가 있었습니다. 작업 관리자에서 "프로세스 종료", "프로세스 트리 종료" 해봐도 안되고, cmd에서 taskkill 해봐도 안되고... 그런데 이게 부모 프로세스를 종료하면 자동으로 종료가 되네요.. (제 경우에는 Visual Studio가 부모 프로세스였습니다. ㅋ) 참고: DEVPIA http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=50&MAEULNo=20&no=917792&ref=917791