Функция IdnToUnicode (winnls.h)
Преобразует форму Punycode международного доменного имени (IDN) или другой международной метки в обычный синтаксис кодировки Юникод UTF-16.
Синтаксис
int IdnToUnicode(
[in] DWORD dwFlags,
[in] LPCWSTR lpASCIICharStr,
[in] int cchASCIIChar,
[out, optional] LPWSTR lpUnicodeCharStr,
[in] int cchUnicodeChar
);
Параметры
[in] dwFlags
Флаги, указывающие параметры преобразования. Подробные определения см. в параметре dwFlagsidnToAscii.
[in] lpASCIICharStr
Указатель на строку, представляющую кодировку Punycode idN или другой международной метки. Эта строка должна состоять только из символов ASCII и может включать Юникод в кодировке Punycode. Функция декодирует значения Punycode в значения UTF-16.
[in] cchASCIIChar
Количество символов во входной строке, указанной lpASCIICharStr.
[out, optional] lpUnicodeCharStr
Указатель на буфер, который получает обычную кодировку Юникода UTF-16, эквивалентную значению Punycode входной строки. Кроме того, функция может получить значение NULL для этого параметра, если для параметра cchUnicodeChar задано значение 0. В этом случае функция возвращает размер, необходимый для этого буфера.
[in] cchUnicodeChar
Размер буфера в символах, указанный lpUnicodeCharStr. Приложение может задать размер равным 0, чтобы получить значение NULL в lpUnicodeCharStr , а функция возвращает требуемый размер буфера.
Возвращаемое значение
Возвращает количество символов, полученных в lpUnicodeCharStr в случае успешного выполнения. Полученная строка завершается null, только если входная строка завершается null.
Если функция выполняется успешно и значение cchUnicodeChar равно 0, функция возвращает необходимый размер в символах, включая завершающий символ NULL, если он был частью входного буфера.
Функция возвращает значение 0, если не удалось. Чтобы получить расширенные сведения об ошибке, приложение может вызвать Метод GetLastError, который может возвращать один из следующих кодов ошибок:
- ERROR_INSUFFICIENT_BUFFER. Указанный размер буфера был недостаточно велик или неправильно задано значение NULL.
- ERROR_INVALID_FLAGS. Значения, предоставленные для флагов, были недопустимыми.
- ERROR_INVALID_NAME. Для функции было предоставлено недопустимое имя. Обратите внимание, что этот код ошибки перехватывает все синтаксические ошибки.
- ERROR_INVALID_PARAMETER. Любое из значений параметров было недопустимым.
- ERROR_NO_UNICODE_TRANSLATION. В строке обнаружен недопустимый Юникод.
Комментарии
См. примечания для IdnToAscii.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2008 [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | winnls.h (включая Windows.h) |
Библиотека | Normaliz.lib |
DLL | Normaliz.dll |
Распространяемые компоненты | API-интерфейсы устранения международных доменных имен (IDN) в Windows XP с пакетом обновления 2 (SP2) или Windows Server 2003 с пакетом обновления 1 (SP1) |