UCHAR(3) Library Functions Manual UCHAR(3)

uchar
Unicode utilities

#include <uchar.h>

The <uchar.h> header file declares types and functions for manipulating Unicode code units.

char8_t
(C23) Unsigned integer type for UTF-8 code units.

Same type as unsigned char.

char16_t
Unsigned integer type for UTF-16 code units.

Same type as uint_least16_t from <stdint.h>. May represent both surrogate code points, i.e., code points in the interval [0xd800,0xdfff], and Unicode scalar values in the Basic Multilingual Plane, which are the 16-bit code points other than surrogate code points.

char32_t
Unsigned integer type for UTF-32 code units.

Same type as uint_least32_t from <stdint.h>. Can represent all Unicode scalar values, not just those in the Basic Multilingual Plane. Intended to represent only Unicode scalar values, not surrogate code points.

mbstate_t
Opaque multibyte conversion state.

Same type as in stddef.h and wchar.h.

size_t
Unsigned integer type to represent array sizes.

Same type as in stddef.h, stdint.h, and sys/types.h.

The <uchar.h> header file declares the functions mbrtoc8(3), c8rtomb(3), mbrtoc16(3), c16rtomb(3), mbrtoc32(3), and c32rtomb(3) for conversion between multibyte sequences and UTF-8/UTF-16/UTF-32 code units.

c8rtomb(3), c16rtomb(3), c32rtomb(3), mbrtoc8(3), mbrtoc16(3), mbrtoc32(3)

The Unicode Standard, https://www.unicode.org/versions/Unicode15.0.0/UnicodeStandard-15.0.pdf, The Unicode Consortium, September 2022, Version 15.0 — Core Specification.

P. Hoffman and F. Yergeau, UTF-16, an encoding of ISO 10646, Internet Engineering Task Force, RFC 2781, https://datatracker.ietf.org/doc/html/rfc2781, February 2000.

F. Yergeau, UTF-8, a transformation format of ISO 10646, Internet Engineering Task Force, RFC 3629, https://datatracker.ietf.org/doc/html/rfc3629, November 2003.

The <uchar.h> header file conforms to ISO/IEC 9899:2011 (“ISO C11”) and IEEE Std 1003.1-2024 (“POSIX.1”).

The <uchar.h> header file first appeared in NetBSD 11.0.
August 15, 2024 NetBSD 10.1