Sdílet prostřednictvím


Podpora IDN ve WinINetu

Počínaje systémem Windows Server 2008 a Windows Vista se hostitelská část adresy URL sady Unicode převede na mezinárodní název domény (IDN). Samostatné části kódování ADRESY URL unicode lze také upravit konfiguracemi nastavenými aplikací. Verze ANSI rozhraní WININet API nadále odesílají adresu URL přes drát, jak aplikace zadala, ale verze rozhraní API WinINet Unicode nyní odpovídají standardu IDN (RFC3490) pro kódování adres URL.

Ve výchozím nastavení se při zadání adresy URL jako parametr Unicode převede část hostitele pro proxy i přímá připojení na formát IDN. Aplikace má možnost zakázat formátování hostitele IDN nastavením možnosti INTERNET_OPTION_IDN. Převod hostitele IDN lze povolit pouze u přímých nebo proxy připojení pomocí INTERNET_FLAG_IDN_DIRECT nebo INTERNET_FLAG_IDN_PROXY příznaků s INTERNET_OPTION_IDN.

Následující příklad kódu ukazuje, jak zakázat převod hostitele IDN pro proxy i přímá připojení.

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

Pokud je formátování hostitele IDN zakázané, má aplikace možnost zadat požadovanou znakovou stránku pomocí INTERNET_OPTION_CODEPAGE.

Následující příklad kódu ukazuje, jak zadat japonskou znakovou stránku.

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

Část cesty adresy URL je ve výchozím nastavení kódována kódováním UTF8 a zbývající segmenty adresy URL, dotazu nebo fragmentu se převedou na výchozí systémovou znakovou stránku (CP_ACP).

Následující příklad ukazuje, jak zadat znakovou stránku korejštiny pro část cesty adresy URL.

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

Následující tabulka definuje možnosti, které podporují IDN. Další informace najdete v tématu Příznaky možností.

Možnost Popis
INTERNET_OPTION_CODEPAGE Tato možnost je nastavena na požadavek nebo popisovač připojení k určení schématu kódování znakové stránky pro část adresy URL hostitele. Tato možnost se ignoruje, pokud je povolená hodnota IDN.
INTERNET_OPTION_CODEPAGE_PATH Tato možnost je nastavená na požadavek nebo popisovač připojení povolí zadané schéma kódování pro část cesty adresy URL. Ve výchozím nastavení je část cesty adresy URL kódována UTF8.
INTERNET_OPTION_CODEPAGE_EXTRA Nastavením této možnosti na požadavek nebo popisovač připojení povolíte zadané schéma kódování pro další část adresy URL. Ve výchozím nastavení je další část adresy URL zakódovaná na výchozí systémové znakové stránce (CP_ACP).
INTERNET_OPTION_IDN Tuto možnost můžete použít v požadavku nebo popisovač připojení k povolení nebo zakázání převodu hostitele IDN. Pokud je idN zakázáno, WinINet používá výchozí systémovou znakovou stránku ke kódování hostitele nebo autority části adresy URL.

 

Poznámka

WinINet nepodporuje implementace serveru. Kromě toho by se nemělo používat ze služby. Pro implementace serverů nebo služby použijte microsoft Windows HTTP Services (WinHTTP).