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 Konfigurationen geändert werden, die von der Anwendung festgelegt werden. Die ANSI-Versionen der WinINet-API senden weiterhin die URL über die Von der Anwendung eingegebene Leitung, 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 für Proxy- und direkte Verbindungen standardmäßig in das IDN-Format konvertiert. Die Anwendung hat die Möglichkeit, die IDN-Hostformatierung durch Festlegen der Option _ INTERNETOPTION _ IDN zu deaktivieren. Die IDN-Hostkonvertierung kann nur für die direkten Verbindungen oder Proxyverbindungen aktiviert werden, indem die PROXYflags INTERNET _ FLAG _ IDN _ DIRECT oder INTERNET FLAG _ _ IDN _ PROXY mit INTERNET OPTION _ _ IDN verwendet werden.

Das folgende Codebeispiel zeigt, wie die IDN-Hostkonvertierung sowohl für den Proxy als auch für direkte Verbindungen deaktiviert wird.

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 _ CODEPAGE anzugeben.

Das folgende Codebeispiel zeigt, 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 Standardsystemcodepage (CP _ ACP) konvertiert.

Im folgenden Beispiel wird gezeigt, wie sie die Codepage der koreanischen Sprache 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 Optionsflags.

Option BESCHREIBUNG
INTERNETOPTION _ _ CODEPAGE Diese Option wird für die Anforderung oder das Verbindungshandle festgelegt, um ein Codepage-Codierungsschema für den Hostteil der URL anzugeben. Diese Option wird ignoriert, wenn IDN aktiviert ist.
INTERNETOPTION _ _ _ CODEPAGE-PFAD 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.
INTERNETOPTION _ _ CODEPAGE _ EXTRA Wenn Sie diese Option für die Anforderung oder das Verbindungshandle festlegen, wird das angegebene Codierungsschema für den zusätzlichen Teil der URL aktiviert. Standardmäßig wird der zusätzliche Teil der URL auf der Standardsystemcodepage (CP _ ACP) codiert.
_ _ INTERNETOPTIONS-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 Standardsystemcodepage, um den Host- oder Autoritätsteil der URL zu codieren.

Hinweis

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-Dienste (WinHTTP).