idnToNameprepUnicode 函式 (winnls.h)
將國際化功能變數名稱 (IDN) 或其他國際化標籤轉換成網路工作組 RFC 3491所指定的 NamePrep 表單,但不會執行額外的 Punycode 轉換。 如需相關草稿標準的詳細資訊和連結,請參閱 處理國際化功能變數名稱 (IDN) 。
語法
int IdnToNameprepUnicode(
[in] DWORD dwFlags,
[in] LPCWSTR lpUnicodeCharStr,
[in] int cchUnicodeChar,
[out, optional] LPWSTR lpNameprepCharStr,
[in] int cchNameprepChar
);
參數
[in] dwFlags
指定轉換選項的旗標。 如需詳細定義,請參閱IdnToAscii的dwFlags參數。
[in] lpUnicodeCharStr
代表 IDN 或其他國際化標籤的 Unicode 字串指標。
[in] cchUnicodeChar
輸入 Unicode 字串中 由 lpUnicodeCharStr 指示的 Unicode字元計數。
[out, optional] lpNameprepCharStr
緩衝區的指標,接收透過 NamePrep 處理轉換的輸入 Unicode 字串版本。 或者,如果cchNameprepChar設定為 0,函式可以擷取此參數的Null。 在此情況下,函式會傳回這個緩衝區所需的大小。
[in] cchNameprepChar
大小,以字元為單位,以字元為單位,以 lpNameprepCharStr表示的緩衝區。 應用程式可以將大小設定為 0,以在lpNameprepCharStr中擷取Null,並讓函式傳回所需的緩衝區大小。
傳回值
如果成功,會傳回 在 lpNameprepCharStr 中擷取的字元數。 只有在輸入 Unicode 字串為 Null 終止時,擷取的字串才會以 Null 終止。
如果函式成功, 且 cchNameprepChar 的值為 0,則函式會傳回所需的大小,以字元為單位,包括輸入緩衝區的終止 Null 字元。
如果函式不成功,函式會傳回 0。 若要取得擴充的錯誤資訊,應用程式可以呼叫 GetLastError,這可以傳回下列其中一個錯誤碼:
- ERROR_INSUFFICIENT_BUFFER。 提供的緩衝區大小不夠大,或設定為 Null不正確。
- ERROR_INVALID_FLAGS。 為旗標提供的值無效。
- ERROR_INVALID_NAME。 為函式提供不正確名稱。 請注意,這個錯誤碼會攔截所有語法錯誤。
- ERROR_INVALID_PARAMETER。 任何參數值都無效。
- ERROR_NO_UNICODE_TRANSLATION。 在字串中找到不正確 Unicode。
備註
請參閱 IdnToAscii的。
範例
NLS:國際化功能變數名稱 (IDN) 轉換範例 示範如何使用此函式。
規格需求
最低支援的用戶端 | 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 |