IdnToUnicode 関数 (winnls.h)
国際化ドメイン名 (IDN) または別の国際化されたラベルの Punycode 形式を、通常の 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
入力文字列の Punycode 値に相当する通常の Unicode UTF-16 エンコードを受け取るバッファーへのポインター。 または、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 を含む) |
Library | Normaliz.lib |
[DLL] | Normaliz.dll |
再頒布可能パッケージ | Microsoft Internationalized Domain Name (IDN) 軽減 API on Windows XP with SP2 以降、または Windows Server 2003 sp1 |