UrlCanonicalizeA 함수(shlwapi.h)
URL 문자열을 정규 형식으로 변환합니다.
구문
LWSTDAPI UrlCanonicalizeA(
[in] PCSTR pszUrl,
[out] PSTR pszCanonicalized,
[in, out] DWORD *pcchCanonicalized,
DWORD dwFlags
);
매개 변수
[in] pszUrl
형식: PCTSTR
URL 문자열을 포함하는 최대 길이 INTERNET_MAX_URL_LENGTH null로 끝나는 문자열에 대한 포인터입니다. 문자열이 파일을 참조하지 않는 경우 "http://"과 같은 유효한 스키마를 포함해야 합니다.
[out] pszCanonicalized
형식: PTSTR
이 함수가 성공적으로 반환될 때 변환된 URL을 null로 종료된 문자열로 수신하는 버퍼에 대한 포인터입니다.
[in, out] pcchCanonicalized
형식: DWORD*
항목에서 pszCanonicalized 버퍼의 문자 수로 설정된 값에 대한 포인터입니다.
dwFlags
형식:DWORD
URL을 정식 형식으로 변환하는 방법을 지정하는 플래그입니다. 다음 플래그를 결합할 수 있습니다.
URL_UNESCAPE(0x10000000)
두 가지 예외를 제외하고 URL에 포함된 모든 이스케이프 시퀀스를 이스케이프 해제합니다. "?" 및 "#"에 대한 이스케이프 시퀀스는 이스케이프 해제되지 않습니다. URL_ESCAPE_XXX 플래그 중 하나가 설정되면 두 URL이 먼저 이스케이프되지 않은 다음 결합된 다음 이스케이프됩니다.
URL_ESCAPE_UNSAFE(0x20000000)
안전하지 않은 문자를 이스케이프 시퀀스로 바꿉니다. 안전하지 않은 문자는 인터넷을 통해 전송하는 동안 변경될 수 있는 문자이며 (<, ", >#, {, }, |, , ^, [, ]및 ') 문자를 포함합니다. 이 플래그는 불투명 URL을 포함하여 모든 URL에 적용됩니다.
URL_PLUGGABLE_PROTOCOL(0x40000000)
W3C 사양에 따라 URL을 클라이언트 정의 플러그형 프로토콜과 결합합니다. 이 플래그는 ftp, http, gopher 등의 표준 프로토콜에는 적용되지 않습니다. 이 플래그가 설정된 경우 UrlCombine 은 URL을 간소화하지 않으므로 URL_DONT_SIMPLIFY 설정할 필요가 없습니다.
URL_ESCAPE_SPACES_ONLY(0x04000000)
공백만 이스케이프 시퀀스로 바꿉니다. 이 플래그는 URL_ESCAPE_UNSAFE 우선하지만 불투명 URL에는 적용되지 않습니다.
URL_DONT_SIMPLIFY(0x08000000)
URL 문자열에 "/. /" 및 "/.. /"은 탐색을 위한 축약형이 아닌 리터럴 문자로 처리합니다. 자세한 내용은 설명을 참조하세요.
URL_NO_META(0x08000000)
URL_DONT_SIMPLIFY 같도록 정의됩니다.
URL_ESCAPE_PERCENT(0x00001000)
"%"의 모든 발생을 해당 이스케이프 시퀀스로 변환합니다.
URL_ESCAPE_AS_UTF8(0x00040000)
Windows 7 이상. ASCII가 아닌 모든 문자를 UTF-8 등가물로 백분율로 인코딩합니다.
반환 값
형식: HRESULT
이 함수가 성공하면 S_OK 반환합니다. 그러지 않으면 HRESULT 오류 코드를 반환합니다.
설명
이 함수는 안전하지 않은 문자를 이스케이프 시퀀스로 바꾸고 "....."와 같은 시퀀스를 축소하는 등의 작업을 수행합니다.
URL 문자열에 "/.가 포함된 경우. /" 또는 "/./", UrlCanonicalize 는 문자를 URL 계층 구조의 탐색을 나타내는 것으로 처리합니다. 함수는 URL을 결합하기 전에 간소화합니다. instance "/hello/cruel/.. /world"는 "/hello/world"로 간소화됩니다. 이 기본 동작에 대한 예외는 다음과 같은 경우에 발생합니다.
- URL_DONT_SIMPLIFY 플래그가 dwFlags에 설정된 경우 함수는 URL을 간소화하지 않습니다. 이 경우 "/hello/cruel/.. /world"는 그대로 남아 있습니다.
- "/.. /" 또는 "/./"는 경로의 첫 번째 세그먼트(예: "http://domain/../path1/path2/file.htm")이며 , UrlCanonicalize 는 입력된 것과 정확하게 경로를 출력합니다.
참고
shlwapi.h 헤더는 URLCanonicalize를 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.
요구 사항
지원되는 최소 클라이언트 | Windows 2000 Professional, Windows XP [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
대상 플랫폼 | Windows |
헤더 | shlwapi.h |
라이브러리 | Shlwapi.lib |
DLL | Shlwapi.dll(버전 5.0 이상) |