다음을 통해 공유


IdnToUnicode 함수(winnls.h)

IDN(국제화된 도메인 이름) 또는 다른 국제화된 레이블의 Punycode 형식을 일반 유니코드 UTF-16 인코딩 구문으로 변환합니다.

주의 이 함수는 유니코드의 Punycode 인코 딩에 대한 RFC 3490: IDNA(애플리케이션의 도메인 이름 국제화) 표준 알고리즘을 구현합니다. 표준에는 몇 가지 보안 문제가 도입되었습니다. 한 가지 문제는 다른 스크립트의 특정 문자를 나타내는 문자 모양이 유사하거나 동일하게 나타날 수 있다는 것입니다. 예를 들어 많은 글꼴에서 키릴 자모 소문자 A("а")는 라틴어 소문자 A("a")와 구별할 수 없습니다. "example.com" 및 "exа mple.com"는 이름에 라틴어 소문자 A가 있고 다른 하나는 키릴 자모 소문자 A인 두 개의 서로 다른 도메인 이름임을 시각적으로 알 수 있는 방법이 없습니다. IDN 관련 보안 문제에 대한 자세한 내용은 IDN(Internationalized Domain Names) 처리를 참조하세요.

 

구문

int IdnToUnicode(
  [in]            DWORD   dwFlags,
  [in]            LPCWSTR lpASCIICharStr,
  [in]            int     cchASCIIChar,
  [out, optional] LPWSTR  lpUnicodeCharStr,
  [in]            int     cchUnicodeChar
);

매개 변수

[in] dwFlags

변환 옵션을 지정하는 플래그입니다. 자세한 정의는 IdnToAsciidwFlags 매개 변수를 참조하세요.

[in] lpASCIICharStr

IDN 또는 다른 국제화된 레이블의 Punycode 인코딩을 나타내는 문자열에 대한 포인터입니다. 이 문자열은 ASCII 문자로만 구성되어야 하며 Punycode로 인코딩된 유니코드를 포함할 수 있습니다. 함수는 Punycode 값을 UTF-16 값으로 디코딩합니다.

[in] cchASCIIChar

lpASCIICharStr로 표시된 입력 문자열의 문자 수입니다.

[out, optional] lpUnicodeCharStr

입력 문자열의 Punycode 값에 해당하는 일반 유니코드 UTF-16 인코딩을 수신하는 버퍼에 대한 포인터입니다. 또는 cchUnicodeChar가 0으로 설정된 경우 함수는 이 매개 변수에 대해 NULL을 검색할 수 있습니다. 이 경우 함수는 이 버퍼에 필요한 크기를 반환합니다.

[in] cchUnicodeChar

lpUnicodeCharStr로 표시된 버퍼의 크기(문자)입니다. 애플리케이션은 lpUnicodeCharStr에서 NULL을 검색하기 위해 크기를 0으로 설정하고 함수가 필요한 버퍼 크기를 반환하도록 할 수 있습니다.

반환 값

성공하면 lpUnicodeCharStr 에서 검색된 문자 수를 반환합니다. 검색된 문자열은 입력 문자열이 null로 종료된 경우에만 null로 종료됩니다.

함수가 성공하고 cchUnicodeChar 값이 0이면 함수는 입력 버퍼의 일부인 경우 종료 null 문자를 포함하여 필요한 크기를 문자로 반환합니다.

함수가 성공하지 못하면 0을 반환합니다. 확장된 오류 정보를 가져오기 위해 애플리케이션은 다음 오류 코드 중 하나를 반환할 수 있는 GetLastError를 호출할 수 있습니다.

  • ERROR_INSUFFICIENT_BUFFER. 제공된 버퍼 크기가 충분히 크지 않거나 NULL로 잘못 설정되었습니다.
  • ERROR_INVALID_FLAGS. 플래그에 제공된 값이 잘못되었습니다.
  • ERROR_INVALID_NAME. 함수에 잘못된 이름이 제공되었습니다. 이 오류 코드는 모든 구문 오류를 catch합니다.
  • ERROR_INVALID_PARAMETER. 매개 변수 값이 잘못되었습니다.
  • ERROR_NO_UNICODE_TRANSLATION. 문자열에서 잘못된 유니코드가 발견되었습니다.

설명

IdnToAscii에 대한 설명을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 winnls.h(Windows.h 포함)
라이브러리 Normaliz.lib
DLL Normaliz.dll
재배포 가능 파일 MICROSOFT IDN(Internationalized Domain Name) 완화 API onWindows XP with SP2 이상, 또는Windows Server 2003 with SP1

추가 정보

IDN(Internationalized Domain Names) 처리

IdnToAscii

IdnToNameprepUnicode

국가 언어 지원

국가 언어 지원 함수