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 das Kabel, wie sie von der Anwendung eingegeben wurde, aber die WinINet Unicode-Versionen der API entsprechen jetzt dem IDN-Standard (RFC3490) für URL-Codierungen.

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

Das folgende Codebeispiel zeigt, wie Sie die IDN-Hostkonvertierung sowohl für die Proxy- als auch für die direkte Verbindung deaktivieren.

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

Wenn die IDN-Hostformatierung deaktiviert ist, kann die Anwendung die gewünschte Codepage mithilfe von INTERNET_OPTION_CODEPAGE angeben.

Im folgenden Codebeispiel wird veranschaulicht, wie die japanische Codepage 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 Standardcodepage des Systems (CP_ACP) konvertiert.

Im folgenden Beispiel wird gezeigt, wie die Codepage der koreanischen Sprache für den Pfadteil der URL angegeben wird.

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 Codepagecodierungsschema 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 in der Standardcodepage des Systems (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.

 

Hinweis

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