共用方式為


RtlUTF8ToUnicodeN 函式

使用 8 位 Unicode 轉換格式 (UTF-8) 代碼頁,將指定的來源字串轉譯成 Unicode 字串。

語法

NTSTATUS WINAPI RtlUTF8ToUnicodeN(
  _Out_     PWSTR  UnicodeStringDestination,
  _In_      ULONG  UnicodeStringMaxByteCount,
  _Out_opt_ PULONG UnicodeStringActualByteCount,
  _In_      PCCH   UTF8StringSource,
  _In_      ULONG  UTF8StringByteCount
);

參數

UnicodeStringDestination [out]

接收已翻譯字串之呼叫端配置的緩衝區指標。

UnicodeStringMaxByteCount [in]

UnicodeStringDestination 寫入的最大位元元組數目。 如果此值導致翻譯的字串遭到截斷, RtlUTF8ToUnicodeN 會傳回錯誤狀態。

UnicodeStringActualByteCount [out, optional]

呼叫端配置的變數指標,接收翻譯字串的長度,以位元組為單位。 這個參數是選擇性的,而且可以 NULL。 如果字串遭到截斷,則傳回的數位會計算實際的截斷字元串計數。

UTF8StringSource [in]

要翻譯之字串的指標。

UTF8StringByteCount [in]

UTF8StringSource 字串的大小,以位元組為單位。

返回值

RtlUTF8ToUnicodeN 會傳回下列其中一個 NTSTATUS 值:

回傳碼 說明
STATUS_SUCCESS
字串已轉換成 Unicode。
STATUS_SOME_NOT_MAPPED
遇到無效的輸入字元並被取代。 此狀態會被視為成功狀態。
STATUS_INVALID_PARAMETER
UnicodeStringDestinationUnicodeStringActualByteCount 的兩個指標都是 NULL
STATUS_INVALID_PARAMETER_4
UTF8StringSourceNULL
STATUS_BUFFER_TOO_SMALL
UnicodeStringDestination 已截斷。

 

備註

雖然 UnicodeStringActualByteCount 是選擇性的,而且可以是 NULL,但呼叫端應該為其提供記憶體,因為收到的長度可以用來判斷轉換是否成功。

如果輸出遭到截斷,而且遇到無效的輸入字元,則函式會傳回STATUS_BUFFER_TOO_SMALL錯誤。

如果 UnicodeStringDestination 設定為 NULL ,函式會傳回必要的位元組數目,以裝載翻譯的字串,而不會在 UnicodeStringActualByteCount 中截斷。

除非 UnicodeStringDestinationUTF8StringSource 指標相等,否則 RtlUTF8ToUnicodeN 不會修改來源字串。 傳回的 Unicode 字串不會以 Null 結束。

RtlUTF8ToUnicodeN 的呼叫端必須在 IRQL < DISPATCH_LEVEL執行。

需求

要求 價值觀
最低支援的用戶端
Windows 7 [僅限桌面應用程式]
最低支援的伺服器
Windows Server 2008 R2 [僅限桌面應用程式]
頁首
Wdm.h
DLL
Ntdll.dll

另請參閱

RtlUnicodeToUTF8N