Updated: 2025/Nov/16
Please read Privacy Policy. It's for your privacy.
UCHAR(3) Library Functions Manual UCHAR(3)
NAME
uchar - Unicode utilities
SYNOPSIS
#include <uchar.h>
DESCRIPTION
The <uchar.h> header file declares types and functions for manipulating
Unicode code units.
Types
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.
Functions
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.
SEE ALSO
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.
STANDARDS
The <uchar.h> header file conforms to ISO/IEC 9899:2011 ("ISO C11") and
IEEE Std 1003.1-2024 ("POSIX.1").
HISTORY
The <uchar.h> header file first appeared in NetBSD 11.0.
NetBSD 11.99 August 15, 2024 NetBSD 11.99