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

指定轉換選項的旗標。 如需詳細定義,請參閱IdnToAsciidwFlags參數。

[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

另請參閱

處理國際化功能變數名稱 (IDN)

IdnToAscii

IdnToUnicode

國家語言支援

國家語言支援函式