WinINet'te IDN Desteği
Windows Server 2008 ve Windows Vista'dan başlayarak, Unicode URL'sinin ana bilgisayar bölümü Uluslararası Etki Alanı Adı'na (IDN) dönüştürülür. Unicode URL kodlamasının ayrı bölümleri, uygulama tarafından ayarlanan yapılandırmalarla da değiştirilebilir. WinINet API'sinin ANSI sürümleri URL'yi uygulama tarafından girilen şekilde kablo üzerinden göndermeye devam eder, ancak API'nin WinINet Unicode sürümleri artık URL kodlamaları için IDN standardına (RFC3490) uygundur.
Varsayılan olarak, bir URL Unicode parametresi olarak girildiğinde, hem ara sunucu hem de doğrudan bağlantılar için ana bilgisayar bölümü IDN biçimine dönüştürülür. Uygulama, INTERNET_OPTION_IDN seçeneğini ayarlayarak IDN ana bilgisayar biçimlendirmesini devre dışı bırakma seçeneğine sahiptir. IDN ana bilgisayar dönüştürmesi, INTERNET_OPTION_IDNile INTERNET_FLAG_IDN_DIRECT veya INTERNET_FLAG_IDN_PROXY bayrakları kullanılarak yalnızca doğrudan veya ara sunucu bağlantılarında etkinleştirilebilir.
Aşağıdaki kod örneği, hem ara sunucu hem de doğrudan bağlantılar için IDN ana bilgisayar dönüştürmesinin nasıl devre dışı bırakılıp devre dışı bırakılamını gösterir.
DWORD IDN = 0;
InternetSetOption( hRequest,
INTERNET_OPTION_IDN,
&IDN,
sizeof(DWORD) );
IDN ana bilgisayar biçimlendirmesi devre dışı bırakılırsa, uygulamanın INTERNET_OPTION_CODEPAGEkullanarak istenen kod sayfasını belirtme seçeneği vardır.
Aşağıdaki kod örneği, Japonca kod sayfasının nasıl belirtileceğini gösterir.
DWORD CP_SHIFT_JIS = 932; // ANSI/OEM Japanese, Shift-JIS
InternetSetOption( hRequest,
INTERNET_OPTION_CODEPAGE,
&CP_SHIFT_JIS,
Sizeof(DWORD) );
URL'nin yol bölümü varsayılan olarak UTF8 kodludur ve URL'nin kalan kesimleri olan sorgu veya parça varsayılan sistem kodu sayfasına (CP_ACP) dönüştürülür.
Aşağıdaki örnek, URL'nin yol bölümü için Kore dili dil kodu sayfasının nasıl belirtileceğini gösterir.
DWORD CP_KOREAN = 949; // ANSI/OEM Korean
InternetSetOption( hRequest,
INTERNET_OPTION_CODEPAGE_PATH,
&CP_KOREAN,
sizeof(DWORD) );
Aşağıdaki tablo IDN'yi destekleyen seçenekleri tanımlar. Daha fazla bilgi için Seçeneği bayrakları konusuna bakın.
Seçenek | Açıklama |
---|---|
INTERNET_OPTION_CODEPAGE | Bu seçenek, URL'nin ana bilgisayar bölümü için bir kod sayfası kodlama düzeni belirtmek üzere istekte veya bağlantı tanıtıcısında ayarlanır. IDN etkinse bu seçenek yoksayılır. |
INTERNET_OPTION_CODEPAGE_PATH | Bu seçenek istekte ayarlanır veya bağlantı tutamacı URL'nin yol bölümü için belirtilen kodlama düzenini etkinleştirir. Varsayılan olarak, URL'nin yol bölümü UTF8 kodludur. |
INTERNET_OPTION_CODEPAGE_EXTRA | İstekte veya bağlantı tanıtıcısında bu seçeneğin ayarlanması, URL'nin ek bölümü için belirtilen kodlama düzenini etkinleştirir. Varsayılan olarak, URL'nin ek bölümü varsayılan sistem kodu sayfasında (CP_ACP) kodlanır. |
INTERNET_OPTION_IDN | Bu seçenek, IDN konak dönüştürmesini etkinleştirmek veya devre dışı bırakmak için istekte veya bağlantı tanıtıcısında kullanılabilir. IDN devre dışı bırakıldığında, WinINet URL'nin ana bilgisayar veya yetkili bölümünü kodlamak için varsayılan sistem kod sayfasını kullanır. |
Not
WinINet, sunucu uygulamalarını desteklemez. Ayrıca, bir hizmetten kullanılmamalıdır. Sunucu uygulamaları veya hizmetleri için Microsoft Windows HTTP Services (WinHTTP)kullanın.