Delen via


IDN-ondersteuning in WinINet

Vanaf Windows Server 2008 en Windows Vista wordt het hostgedeelte van de Unicode-URL geconverteerd naar de geinternationaliseerde domeinnaam (IDN). Afzonderlijke gedeelten van de Unicode-URL-codering kunnen ook worden gewijzigd door configuraties die door de toepassing zijn ingesteld. De ANSI-versies van de WinINet-API blijven de URL verzenden via de kabel zoals ingevoerd door de toepassing, maar de WinINet Unicode-versies van de API voldoen nu aan de IDN-standaard (RFC3490) voor URL-coderingen.

Wanneer een URL wordt ingevoerd als een Unicode-parameter, wordt het hostgedeelte voor zowel proxy- als directe verbindingen standaard geconverteerd naar de IDN-indeling. De toepassing heeft de optie om idN-hostopmaak uit te schakelen door de optie INTERNET_OPTION_IDN in te stellen. IdN-hostconversie kan alleen worden ingeschakeld voor de directe of proxyverbindingen met behulp van de INTERNET_FLAG_IDN_DIRECT of INTERNET_FLAG_IDN_PROXY vlaggen met INTERNET_OPTION_IDN.

In het volgende codevoorbeeld ziet u hoe u idN-hostconversie uitschakelt voor zowel de proxy als directe verbindingen.

DWORD IDN = 0; 
InternetSetOption( hRequest, 
                   INTERNET_OPTION_IDN,
                   &IDN, 
                   sizeof(DWORD) ); 

Als de idN-hostopmaak is uitgeschakeld, heeft de toepassing de optie om de gewenste codepagina op te geven met behulp van INTERNET_OPTION_CODEPAGE.

In het volgende codevoorbeeld ziet u hoe u de Japanse codepagina opgeeft.

DWORD CP_SHIFT_JIS = 932;  // ANSI/OEM  Japanese, Shift-JIS
InternetSetOption( hRequest, 
                   INTERNET_OPTION_CODEPAGE,
                   &CP_SHIFT_JIS, 
                   Sizeof(DWORD) ); 

Het padgedeelte van de URL is standaard gecodeerd met UTF8 en de resterende segmenten van de URL, de query of het fragment, worden geconverteerd naar de standaardpagina met systeemcode (CP_ACP).

In het volgende voorbeeld ziet u hoe u de codepagina voor de Koreaanse taal opgeeft voor het padgedeelte van de URL.

DWORD CP_KOREAN = 949;   // ANSI/OEM Korean 
InternetSetOption( hRequest, 
                   INTERNET_OPTION_CODEPAGE_PATH,
                   &CP_KOREAN, 
                   sizeof(DWORD) );

In de volgende tabel worden de opties gedefinieerd die idN ondersteunen. Zie de Option-markeringen onderwerp voor meer informatie.

Optie Beschrijving
INTERNET_OPTION_CODEPAGE Deze optie is ingesteld op de aanvraag of verbindingsgreep om een codepaginacoderingsschema op te geven voor het hostgedeelte van de URL. Deze optie wordt genegeerd als IDN is ingeschakeld.
INTERNET_OPTION_CODEPAGE_PATH Deze optie is ingesteld op de aanvraag of de verbindingsgreep maakt het opgegeven coderingsschema mogelijk voor het padgedeelte van de URL. Standaard is het padgedeelte van de URL UTF8 gecodeerd.
INTERNET_OPTION_CODEPAGE_EXTRA Als u deze optie instelt op de aanvraag of de verbindingsgreep, wordt het opgegeven coderingsschema ingeschakeld voor het extra gedeelte van de URL. Standaard wordt het extra gedeelte van de URL gecodeerd op de standaardpagina met systeemcode (CP_ACP).
INTERNET_OPTION_IDN Deze optie kan worden gebruikt voor de aanvraag of verbindingsgreep om idN-hostconversie in of uit te schakelen. Wanneer IDN is uitgeschakeld, gebruikt WinINet de standaardsysteemcodepagina om het host- of instantiegedeelte van de URL te coderen.

 

Notitie

WinINet biedt geen ondersteuning voor serverimplementaties. Daarnaast mag deze niet worden gebruikt vanuit een service. Voor server-implementaties of -services wordt Microsoft Windows HTTP Services (WinHTTP)gebruikt.