Freigeben über


IDN-Unterstützung in WinINet

Ab Windows Server 2008 und Windows Vista wird der Hostteil der Unicode-URL in den internationalisierten Domänennamen (IDN) konvertiert. Separate Teile der Unicode-URL-Codierung können auch durch von der Anwendung festgelegte Konfigurationen geändert werden. Die ANSI-Versionen der WinINet-API senden die URL weiterhin über die Leitung, wie von der Anwendung eingegeben, die WinINet Unicode-Versionen der API entsprechen jedoch jetzt dem IDN-Standard (RFC3490) für URL-Codierungen.

Wenn eine URL standardmäßig als Unicode-Parameter eingegeben wird, wird der Hostteil sowohl für Proxy- als auch für direkte Verbindungen in das IDN-Format konvertiert. Die Anwendung hat die Möglichkeit, die IDN-Hostformatierung zu deaktivieren, indem sie die Option INTERNET_OPTION_IDN festlegen. IdN-Hostkonvertierung kann nur für direkte oder Proxyverbindungen aktiviert werden, indem die INTERNET_FLAG_IDN_DIRECT oder INTERNET_FLAG_IDN_PROXY Flags mit INTERNET_OPTION_IDNverwendet werden.

Im folgenden Codebeispiel wird gezeigt, wie sie die IDN-Hostkonvertierung sowohl für proxy- als auch für direkte Verbindungen deaktivieren.

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

Wenn die IDN-Hostformatierung deaktiviert ist, hat die Anwendung die Möglichkeit, die gewünschte Codepage mithilfe von INTERNET_OPTION_CODEPAGEanzugeben.

Das folgende Codebeispiel zeigt, wie die japanische Codeseite angegeben wird.

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

Der Pfadteil der URL ist standardmäßig UTF8-codiert, und die verbleibenden Segmente der URL, die Abfrage oder das Fragment werden in die Standardsystemcodeseite (CP_ACP) konvertiert.

Das folgende Beispiel zeigt, wie Sie die Koreanisch-Sprachcodeseite für den Pfadteil der URL angeben.

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

In der folgenden Tabelle werden die Optionen definiert, die IDN unterstützen. Weitere Informationen finden Sie im Thema Option flags.

Option Beschreibung
INTERNET_OPTION_CODEPAGE Diese Option wird für die Anforderung oder das Verbindungshandle festgelegt, um ein Codeseitencodierungsschema für den Hostteil der URL anzugeben. Diese Option wird ignoriert, wenn IDN aktiviert ist.
INTERNET_OPTION_CODEPAGE_PATH Diese Option wird für die Anforderung festgelegt, oder das Verbindungshandle aktiviert das angegebene Codierungsschema für den Pfadteil der URL. Standardmäßig ist der Pfadteil der URL UTF8-codiert.
INTERNET_OPTION_CODEPAGE_EXTRA Durch Festlegen dieser Option für die Anforderung oder das Verbindungshandle wird das angegebene Codierungsschema für den zusätzlichen Teil der URL aktiviert. Standardmäßig wird der zusätzliche Teil der URL auf der Standardmäßigen Systemcodeseite (CP_ACP) codiert.
INTERNET_OPTION_IDN Diese Option kann für die Anforderung oder das Verbindungshandle verwendet werden, um die IDN-Hostkonvertierung zu aktivieren oder zu deaktivieren. Wenn IDN deaktiviert ist, verwendet WinINet die Standardcodepage des Systems, um den Host- oder Autoritätsteil der URL zu codieren.

 

Anmerkung

WinINet unterstützt keine Serverimplementierungen. Darüber hinaus sollte sie nicht von einem Dienst verwendet werden. Verwenden Sie für Serverimplementierungen oder -dienste Microsoft Windows HTTP Services (WinHTTP).