Bagikan melalui


c16rtomb, c32rtomb

Mengonversi karakter lebar UTF-16 atau UTF-32 menjadi karakter multibyte UTF-8.

Sintaks

size_t c16rtomb(
    char *mbchar,
    char16_t wchar,
    mbstate_t *state
);
size_t c32rtomb(
    char *mbchar,
    char32_t wchar,
    mbstate_t *state
);

Parameter

mbchar
Penunjuk ke array untuk menyimpan karakter multibyte UTF-8 yang dikonversi.

wchar
Karakter lebar untuk dikonversi.

state
Penunjuk ke mbstate_t objek.

Nilai hasil

Jumlah byte yang disimpan dalam objek mbchararray , termasuk urutan shift apa pun. Jika wchar bukan karakter lebar yang valid, nilai (size_t)(-1) dikembalikan, errno diatur ke EILSEQ, dan nilai state tidak ditentukan.

Keterangan

Fungsi ini c16rtomb mengonversi karakter wchar LE UTF-16 ke urutan karakter sempit multibyte UTF-8 yang setara. Jika mbchar bukan penunjuk null, fungsi menyimpan urutan yang dikonversi dalam objek array yang diacu oleh mbchar. MB_CUR_MAX Hingga byte disimpan dalam mbchar, dan state diatur ke status pergeseran multibyte yang dihasilkan.

Jika wchar adalah karakter lebar null, urutan yang diperlukan untuk memulihkan status shift awal disimpan, jika diperlukan, diikuti oleh karakter null. state diatur ke status konversi awal. Fungsi c32rtomb ini identik, tetapi mengonversi karakter UTF-32.

Jika mbchar adalah penunjuk null, perilaku setara dengan panggilan ke fungsi yang menggantikan buffer mbchar internal dan karakter null lebar untuk wchar.

Objek state status konversi memungkinkan Anda melakukan panggilan berikutnya ke fungsi ini dan fungsi lain yang dapat dimulai ulang yang mempertahankan status pergeseran karakter output multibyte. Hasil tidak terdefinisi saat Anda mencampur penggunaan fungsi yang dapat dimulai ulang dan tidak dapat dimulai ulang.

Untuk mengonversi karakter UTF-16 menjadi karakter multibyte non-UTF-8, gunakan wcstombsfungsi , , _wcstombs_lwcstombs_s, atau _wcstombs_s_l.

Persyaratan

Rutin Header yang diperlukan
c16rtomb, c32rtomb C, C++: <uchar.h>

Untuk informasi kompatibilitas, lihat Kompatibilitas.

Baca juga

Konversi data
Lokal
Interpretasi urutan karakter multibyte
mbrtoc16, mbrtoc32
wcrtomb
wcrtomb_s