Share via


Supporto IDN in WinINet

A partire da Windows Server 2008 e Windows Vista, la parte host dell'URL Unicode viene convertita nell'IDN (Internationalized Domain Name). Le parti separate della codifica URL Unicode possono essere modificate anche dalle configurazioni impostate dall'applicazione. Le versioni ANSI dell'API WinINet continuano a inviare l'URL sul filo immesso dall'applicazione, tuttavia le versioni Unicode di WinINet dell'API ora sono conformi allo standard IDN (RFC3490) per le codifica URL.

Per impostazione predefinita, quando un URL viene immesso come parametro Unicode, la parte host, sia per le connessioni proxy che per le connessioni dirette, viene convertita in formato IDN. L'applicazione ha l'opzione per disabilitare la formattazione dell'host IDN impostando l'opzione INTERNET_OPTION_IDN . La conversione host IDN può essere abilitata solo nelle connessioni dirette o proxy usando i flag di INTERNET_FLAG_IDN_DIRECT o di INTERNET_FLAG_IDN_PROXY con INTERNET_OPTION_IDN.

Nell'esempio di codice seguente viene illustrato come disabilitare la conversione host IDN per le connessioni proxy e dirette.

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

Se la formattazione dell'host IDN è disabilitata, l'applicazione dispone dell'opzione per specificare la pagina codici desiderata usando INTERNET_OPTION_CODEPAGE.

Nell'esempio di codice seguente viene illustrato come specificare la tabella codici giapponese.

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

La parte del percorso dell'URL è codificata per impostazione predefinita UTF8 e i segmenti rimanenti dell'URL, la query o il frammento, vengono convertiti nella tabella codici di sistema predefinita (CP_ACP).

Nell'esempio seguente viene illustrato come specificare la tabella codici del linguaggio coreano per la parte del percorso dell'URL.

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

La tabella seguente definisce le opzioni che supportano IDN. Per altre informazioni, vedere l'argomento Flag di opzione .

Opzione Descrizione
INTERNET_OPTION_CODEPAGE Questa opzione è impostata sull'handle di richiesta o connessione per specificare uno schema di codifica della tabella codici per la parte host dell'URL. Questa opzione viene ignorata se l'IDN è abilitato.
INTERNET_OPTION_CODEPAGE_PATH Questa opzione è impostata sulla richiesta o sul handle di connessione abilita lo schema di codifica specificato per la parte del percorso dell'URL. Per impostazione predefinita, la parte del percorso dell'URL è codificata UTF8.
INTERNET_OPTION_CODEPAGE_EXTRA L'impostazione di questa opzione nella richiesta o nell'handle di connessione abilita lo schema di codifica specificato per la parte aggiuntiva dell'URL. Per impostazione predefinita, la parte aggiuntiva dell'URL viene codificata nella tabella codici di sistema predefinita (CP_ACP).
INTERNET_OPTION_IDN Questa opzione può essere usata nella richiesta o nell'handle di connessione per abilitare o disabilitare la conversione dell'host IDN. Quando L'IDN è disabilitato, WinINet usa la tabella codici di sistema predefinita per codificare la parte dell'host o dell'autorità dell'URL.

 

Nota

WinINet non supporta le implementazioni del server. Inoltre, non deve essere usato da un servizio. Per le implementazioni o i servizi server usano Microsoft Windows HTTP Services (WinHTTP).