c16rtomb
, c32rtomb
Przekonwertuj znak UTF-16 lub UTF-32 na znak wielobajtowy UTF-8.
Składnia
size_t c16rtomb(
char *mbchar,
char16_t wchar,
mbstate_t *state
);
size_t c32rtomb(
char *mbchar,
char32_t wchar,
mbstate_t *state
);
Parametry
mbchar
Wskaźnik do tablicy do przechowywania przekonwertowanego znaku WIELObajtowego UTF-8.
wchar
Szeroki znak do konwersji.
state
Wskaźnik do mbstate_t
obiektu.
Wartość zwracana
Liczba bajtów przechowywanych w obiekcie mbchar
tablicy, w tym wszelkie sekwencje przesunięcia. Jeśli wchar
nie jest prawidłowym znakiem szerokim, zwracana errno
jest wartość (size_t
)(-1), jest ustawiona na EILSEQ
, a wartość state
jest nieokreślona.
Uwagi
Funkcja c16rtomb
konwertuje znak wchar
UTF-16 LE na równoważną sekwencję znaków wielobajtowych UTF-8. Jeśli mbchar
nie jest wskaźnikiem o wartości null, funkcja przechowuje przekonwertowaną sekwencję w obiekcie tablicy wskazywanym przez mbchar
wartość . MB_CUR_MAX
Maksymalnie bajty są przechowywane w mbchar
elemecie i state
są ustawione na wynikowy stan przesunięcia wielobajtowego.
Jeśli wchar
jest znakiem o szerokości null, jest przechowywana sekwencja wymagana do przywrócenia stanu początkowego przesunięcia, w razie potrzeby, a następnie znak null. state
jest ustawiona na początkowy stan konwersji. Funkcja jest identyczna c32rtomb
, ale konwertuje znak UTF-32.
Jeśli mbchar
jest wskaźnikiem o wartości null, zachowanie jest równoważne wywołaniu funkcji, która zastępuje wewnętrzny bufor mbchar
i szeroki znak null dla wchar
.
state
Obiekt stanu konwersji umożliwia wykonywanie kolejnych wywołań tej funkcji i innych funkcji z możliwością ponownego uruchomienia, które utrzymują stan zmiany znaków wyjściowych wielobajtowych. Wyniki są niezdefiniowane, gdy mieszasz użycie funkcji możliwych do ponownego uruchomienia i niemożliwych do ponownego uruchomienia.
Aby przekonwertować znaki UTF-16 na znaki inne niż UTF-8, użyj funkcji ,_wcstombs_l
wcstombs_s lub _wcstombs_s_l.wcstombs
Wymagania
Procedura | Wymagany nagłówek |
---|---|
c16rtomb , c32rtomb |
C, C++: <uchar.h> |
Aby uzyskać informacje o zgodności, zobacz Zgodność.
Zobacz też
Konwersja danych
ustawienia regionalne
Interpretacja sekwencji znaków wielobajtowych
mbrtoc16
, mbrtoc32
wcrtomb
wcrtomb_s