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> |
如需相容性資訊,請參閱相容性。