c16rtomb
, c32rtomb
將 UTF-16 或 UTF-32 寬字元轉換成 UTF-8 多位元組字元。
語法
size_t c16rtomb(
char *mbchar,
char16_t wchar,
mbstate_t *state
);
size_t c32rtomb(
char *mbchar,
char32_t wchar,
mbstate_t *state
);
參數
mbchar
陣列的指標,用來儲存已轉換的 UTF-8 多位元組字元。
wchar
要轉換的寬字元。
state
mbstate_t
物件的指標。
傳回值
儲存在陣列物件 mbchar
的位元組數目,包括任何移位序列。 如果 wchar
不是有效的寬字元,則會傳回 errno
值 ( size_t
)(-1),設為 EILSEQ
,且 的值 state
未指定。
備註
函 c16rtomb
式會將 UTF-16 LE 字元 wchar
轉換成對等的 UTF-8 多位元組窄字元序列。 如果 mbchar
不是 Null 指標,函式會將轉換的序列儲存在 所 mbchar
指向的陣列物件中。 MB_CUR_MAX
最多可儲存 mbchar
位元組,而 state
設定為產生的多位元組移位狀態。
如果 wchar
為 Null 寬字元,則會視需要儲存還原初始移位狀態所需的序列,後面接著 Null 字元。 state
設定為初始轉換狀態。 c32rtomb
函式相同,但轉換 UTF-32 字元。
如果 mbchar
是 null 指標,此行為相當於呼叫替代 mbchar
的內部緩衝區和 wchar
的寬 null 字元的函式。
state
轉換狀態物件允許您對這個函式,以及維護多位元組輸出字元移位狀態的其他可重新啟動函式,進行後續呼叫。 當您混合使用可重新開機和不可重新開機的函式時,結果未定義。
若要將 UTF-16 字元轉換成非 UTF-8 多位元組字元,請使用 wcstombs
、 _wcstombs_l
、 wcstombs_s 或 _wcstombs_s_l 函式。
需求
常式 | 必要的標頭 |
---|---|
c16rtomb , c32rtomb |
C、C++: < uchar.h> |
如需相容性資訊,請參閱相容性。
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應