c16rtomb
, c32rtomb
UTF-16 veya UTF-32 genişliğindeki bir karakteri UTF-8 çok baytlı karaktere dönüştürün.
Sözdizimi
size_t c16rtomb(
char *mbchar,
char16_t wchar,
mbstate_t *state
);
size_t c32rtomb(
char *mbchar,
char32_t wchar,
mbstate_t *state
);
Parametreler
mbchar
Dönüştürülen UTF-8 çok baytlı karakteri depolamak için bir dizi işaretçisi.
wchar
Dönüştürülecek geniş bir karakter.
state
Nesne işaretçisi mbstate_t
.
Dönüş değeri
Tüm vardiya dizileri dahil olmak üzere dizi nesnesinde mbchar
depolanan bayt sayısı. Geçerli bir geniş karakter değilse wchar
, (size_t
)(-1) değeri döndürülür, errno
olarak EILSEQ
ayarlanır ve değeri state
belirtilmez.
Açıklamalar
İşlev UTF-16 c16rtomb
LE karakterini wchar
eşdeğer UTF-8 çok baytlı dar karakter dizisine dönüştürür. Null işaretçi değilse mbchar
, işlev dönüştürülen sırayı tarafından mbchar
işaret edilen dizi nesnesinde depolar. Baytlara MB_CUR_MAX
kadar , içinde mbchar
depolanır ve state
sonuçta elde edilen çok baytlı kaydırma durumuna ayarlanır.
Boş geniş karakter ise wchar
, ilk vardiya durumunu geri yüklemek için gereken bir sıra depolanır, gerekirse, ardından null karakter. state
ilk dönüştürme durumuna ayarlanır. c32rtomb
İşlev aynıdır, ancak UTF-32 karakterini dönüştürür.
Null işaretçiyse mbchar
, davranış işlevine yapılan ve için iç arabelleği mbchar
ve geniş null karakterinin yerini alan bir çağrıya wchar
eşdeğerdir.
Dönüştürme state
durumu nesnesi, bu işleve ve çok baytlı çıkış karakterlerinin vardiya durumunu koruyan diğer yeniden başlatılabilir işlevlere sonraki çağrılar yapmanıza olanak tanır. Yeniden başlatılabilir ve yeniden başlatılamayan işlevlerin kullanımını karıştırdığınızda sonuçlar tanımlanmamış olur.
UTF-16 karakterlerini UTF-8 olmayan çok baytlı karakterlere dönüştürmek için , _wcstombs_l
, wcstombs_s veya _wcstombs_s_l işlevlerini kullanınwcstombs
.
Gereksinimler
Yordam | Gerekli başlık |
---|---|
c16rtomb , c32rtomb |
C, C++: <uchar.h> |
Uyumluluk bilgileri için bkz . Uyumluluk.
Ayrıca bkz.
Veri dönüştürme
Yerel ayar
Çok baytlı karakter dizilerinin yorumlanması
mbrtoc16
, mbrtoc32
wcrtomb
wcrtomb_s