Sdílet prostřednictvím


c16rtomb, c32rtomb

Převede znak UTF-16 nebo UTF-32 na vícebajtový znak UTF-8.

Syntaxe

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

Parametry

mbchar
Ukazatel na pole pro uložení převedeného vícebajtového znaku UTF-8

wchar
Široký znak, který chcete převést.

state
Ukazatel na mbstate_t objekt.

Vrácená hodnota

Počet bajtů uložených v objektu mbcharpole , včetně všech sekvencí posunu. Pokud wchar není platný široký znak, vrátí errno se hodnota (size_t)(-1), nastaví se na EILSEQhodnotu a hodnota state není zadaná.

Poznámky

Funkce c16rtomb převede znak wchar UTF-16 LE na ekvivalentní vícebajtovou zúženou sekvenci znaků UTF-8. Pokud mbchar není ukazatel null, funkce uloží převedenou sekvenci v objektu pole, na který mbcharodkazuje . MB_CUR_MAX Až bajty jsou uloženy v mbchara state jsou nastaveny na výsledný stav vícebajtového posunu.

Pokud wchar je široký znak null, sekvence potřebná k obnovení počátečního stavu směny je v případě potřeby uložena a znak null. state je nastaven na počáteční stav převodu. Funkce c32rtomb je identická, ale převede znak UTF-32.

Pokud mbchar je ukazatel null, chování je ekvivalentní volání funkce, která nahrazuje vnitřní vyrovnávací paměť mbchar a široký znak null znak pro wchar.

state Objekt stavu převodu umožňuje provádět následná volání této funkce a další restartovatelné funkce, které udržují stav posunu vícebajtových výstupních znaků. Výsledky nejsou definovány při kombinaci použití restartovatelných a nerestartovatelných funkcí.

Chcete-li převést UTF-16 znaků na vícebajtové znaky jiné než UTF-8, použijte funkce ,_wcstombs_l , wcstombs_s nebo _wcstombs_s_l.wcstombs

Požadavky

Rutina Požadovaný hlavičkový soubor
c16rtomb, c32rtomb C, C++: <uchar.h>

Informace o kompatibilitě najdete v tématu Kompatibilita.

Viz také

Konverze dat
Národní prostředí
Interpretace vícebajtových sekvencí znaků
mbrtoc16, mbrtoc32
wcrtomb
wcrtomb_s