idnToUnicode 函式 (winnls.h)
將國際化功能變數名稱的 Punycode 形式 (IDN) 或其他國際化卷標轉換為一般 Unicode UTF-16 編碼語法。
語法
int IdnToUnicode(
[in] DWORD dwFlags,
[in] LPCWSTR lpASCIICharStr,
[in] int cchASCIIChar,
[out, optional] LPWSTR lpUnicodeCharStr,
[in] int cchUnicodeChar
);
參數
[in] dwFlags
指定轉換選項的旗標。 如需詳細定義,請參閱IdnToAscii的 dwFlags 參數。
[in] lpASCIICharStr
字串的指標,表示IDN或其他國際化標籤的Punycode編碼方式。 此字串只能包含 ASCII 字元,而且可以包含 Punycode 編碼的 Unicode。 函式會將 Punycode 值譯碼為其 UTF-16 值。
[in] cchASCIIChar
lpASCIICharStr 所指示輸入字串中的字元計數。
[out, optional] lpUnicodeCharStr
接收一般 Unicode UTF-16 編碼的緩衝區指標,相當於輸入字串的 Punycode 值。 或者,如果 cchUnicodeChar 設定為 0,函式可以擷取此參數的 NULL。 在此情況下,函式會傳回這個緩衝區所需的大小。
[in] cchUnicodeChar
大小,以字元為單位,以字元為單位,以 lpUnicodeCharStr 表示的緩衝區。 應用程式可以將大小設定為 0,以在 lpUnicodeCharStr 中擷取 NULL,並讓函式傳回所需的緩衝區大小。
傳回值
如果成功,會傳回 在 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。 在字串中找到無效的 Unicode。
備註
請參閱 IdnToAscii的。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2008 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | winnls.h (包含 Windows.h) |
程式庫 | Normaliz.lib |
Dll | Normaliz.dll |
可轉散發套件 | Microsoft 國際化功能變數名稱 (IDN) WINDOWS XP SP2 和更新版本上的風險降低 API,或使用 SP1 的 Windows Server 2003 |