InternetCanonicalizeUrlA 함수(wininet.h)
안전하지 않은 문자와 공백을 이스케이프 시퀀스로 변환하는 것을 포함하는 URL을 정식화합니다.
통사론
BOOL InternetCanonicalizeUrlA(
[in] LPCSTR lpszUrl,
[out] LPSTR lpszBuffer,
[in, out] LPDWORD lpdwBufferLength,
[in] DWORD dwFlags
);
매개 변수
[in] lpszUrl
정식화할 URL이 포함된 문자열에 대한 포인터입니다.
[out] lpszBuffer
결과 정식화된 URL을 수신하는 버퍼에 대한 포인터입니다.
[in, out] lpdwBufferLength
lpszBuffer 버퍼의 크기를 문자 단위로 포함하는 변수에 대한 포인터입니다. 함수가 성공하면 이 매개 변수는 종료 null 문자를 포함하지 않는 lpszBuffer 버퍼에 실제로 복사된 문자 수를 받습니다. 함수가 실패하면 이 매개 변수는 종료 null 문자를 포함하는 필요한 버퍼 크기를 문자 단위로 받습니다.
[in] dwFlags
컨트롤 정식화. 플래그가 지정되지 않은 경우 함수는 안전하지 않은 모든 문자와 메타 시퀀스(예: .,\ .., ...)를 이스케이프 시퀀스로 변환합니다. 이 매개 변수는 다음 값 중 하나일 수 있습니다.
값 | 의미 |
---|---|
|
"#" 또는 "?"의 뒤에 있는 문자를 인코딩하거나 디코딩하지 않으며 "?"의 후행 공백을 제거하지 않습니다. 이 값을 지정하지 않으면 전체 URL이 인코딩되고 후행 공백이 제거됩니다. |
|
URL을 구문 분석하기 전에 모든 %XX 시퀀스를 이스케이프 시퀀스를 포함한 문자로 변환합니다. |
|
발견된 백분율 기호를 인코딩합니다. 기본적으로 백분율 기호는 인코딩되지 않습니다. 이 값은 Microsoft Internet Explorer 5 이상에서 사용할 수 있습니다. |
|
공백만 인코딩합니다. |
|
안전하지 않은 문자를 이스케이프 시퀀스로 변환하지 않습니다. |
|
URL에서 메타 시퀀스(예: "." 및 "..")를 제거하지 않습니다. |
반환 값
성공하면
반환 코드 | 묘사 |
---|---|
|
URL을 정식화할 수 없습니다. |
|
정식화된 URL이 너무 커서 제공된 버퍼에 맞지 않습니다. lpdwBufferLength 매개 변수는 정식화된 URL을 보유하는 데 필요한 버퍼의 크기(바이트)로 설정됩니다. |
|
URL 형식이 잘못되었습니다. |
|
잘못된 문자열, 버퍼, 버퍼 크기 또는 플래그 매개 변수가 있습니다. |
발언
Internet Explorer 4.0 이상에서 internetCanonicalizeUrl 항상 ICU_BROWSER_MODE 플래그가 설정된 것처럼 작동합니다. 전체 URL을 정식화해야 하는 클라이언트 애플리케이션은
InternetCanonicalizeUrlICU_DECODE 플래그가 지정된 경우에도 항상 기본적으로 인코딩됩니다. 다시 인코딩하지 않고 디코딩하려면 ICU_DECODE | ICU_NO_ENCODE사용합니다. ICU_NO_ENCODE없이 ICU_DECODE 플래그를 사용하는 경우 URL은 구문 분석되기 전에 디코딩됩니다. 그러면 구문 분석 후 안전하지 않은 문자가 다시 인코딩됩니다. 이 함수는 임의의 프로토콜 체계를 처리하지만 이렇게 하려면 안전하지 않은 문자 집합에서 유추해야 합니다.
Internet Explorer 3.0을 사용하는 경우(또는 Internet Explorer 5 이상에 대한
WinINet API의 다른 모든 측면과 마찬가지로 이 함수는 DllMain 내에서 또는 전역 개체의 생성자 및 소멸자 내에서 안전하게 호출할 수 없습니다.
메모
wininet.h 헤더는 INTERNETCanonicalizeUrl을 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입대한
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 Professional [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows 2000 Server [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | wininet.h |
라이브러리 | 위니넷 lib |
DLL | Wininet.dll |
참고 항목
winINet Functions