Fungsi IdnToUnicode (winnls.h)
Mengonversi bentuk Punycode dari nama domain internasional (IDN) atau label internasional lainnya ke sintaks pengodean Unicode UTF-16 normal.
Sintaks
int IdnToUnicode(
[in] DWORD dwFlags,
[in] LPCWSTR lpASCIICharStr,
[in] int cchASCIIChar,
[out, optional] LPWSTR lpUnicodeCharStr,
[in] int cchUnicodeChar
);
Parameter
[in] dwFlags
Bendera yang menentukan opsi konversi. Untuk definisi terperinci, lihat parameter dwFlagsidnToAscii.
[in] lpASCIICharStr
Penunjuk ke string yang mewakili pengodean Punycode dari IDN atau label internasional lainnya. String ini hanya boleh terdiri dari karakter ASCII, dan dapat menyertakan Unicode yang dikodekan Punycode. Fungsi ini mendekode nilai Punycode ke nilai UTF-16 mereka.
[in] cchASCIIChar
Jumlah karakter dalam string input yang ditunjukkan oleh lpASCIICharStr.
[out, optional] lpUnicodeCharStr
Penunjuk ke buffer yang menerima pengodean Unicode UTF-16 normal yang setara dengan nilai Punycode dari string input. Atau, fungsi dapat mengambil NULL untuk parameter ini, jika cchUnicodeChar diatur ke 0. Dalam hal ini, fungsi mengembalikan ukuran yang diperlukan untuk buffer ini.
[in] cchUnicodeChar
Ukuran, dalam karakter, dari buffer yang ditunjukkan oleh lpUnicodeCharStr. Aplikasi dapat mengatur ukuran ke 0 untuk mengambil NULL di lpUnicodeCharStr dan meminta fungsi mengembalikan ukuran buffer yang diperlukan.
Mengembalikan nilai
Mengembalikan jumlah karakter yang diambil dalam lpUnicodeCharStr jika berhasil. String yang diambil dihentikan null hanya jika string input dihentikan null.
Jika fungsi berhasil dan nilai cchUnicodeChar adalah 0, fungsi mengembalikan ukuran yang diperlukan, dalam karakter termasuk karakter null yang mengakhiri jika merupakan bagian dari buffer input.
Fungsi mengembalikan 0 jika tidak berhasil. Untuk mendapatkan informasi kesalahan yang diperluas, aplikasi dapat memanggil GetLastError, yang dapat mengembalikan salah satu kode kesalahan berikut:
- ERROR_INSUFFICIENT_BUFFER. Ukuran buffer yang disediakan tidak cukup besar, atau salah diatur ke NULL.
- ERROR_INVALID_FLAGS. Nilai yang diberikan untuk bendera tidak valid.
- ERROR_INVALID_NAME. Nama yang tidak valid diberikan ke fungsi. Perhatikan bahwa kode kesalahan ini menangkap semua kesalahan sintaks.
- ERROR_INVALID_PARAMETER. Salah satu nilai parameter tidak valid.
- ERROR_NO_UNICODE_TRANSLATION. Unicode tidak valid ditemukan dalam string.
Keterangan
Lihat Keterangan untuk IdnToAscii.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows Vista [aplikasi desktop | Aplikasi UWP] |
Server minimum yang didukung | Windows Server 2008 [aplikasi desktop | Aplikasi UWP] |
Target Platform | Windows |
Header | winnls.h (termasuk Windows.h) |
Pustaka | Normaliz.lib |
DLL | Normaliz.dll |
Redistribusi | API Mitigasi Nama Domain Internasional Microsoft (IDN) diWindows XP dengan SP2 dan yang lebih baru, atauWindows Server 2003 dengan SP1 |