1.\" 2.\" This file and its contents are supplied under the terms of the 3.\" Common Development and Distribution License ("CDDL"), version 1.0. 4.\" You may only use this file in accordance with the terms of version 5.\" 1.0 of the CDDL. 6.\" 7.\" A full copy of the text of the CDDL should have accompanied this 8.\" source. A copy of the CDDL is also available via the Internet at 9.\" http://www.illumos.org/license/CDDL. 10.\" 11.\" 12.\" Copyright 2020 Robert Mustacchi 13.\" 14.Dd April 22, 2020 15.Dt UCHAR.H 3HEAD 16.Os 17.Sh NAME 18.Nm uchar.h 19.Nd unicode utilities header 20.Sh SYNOPSIS 21.In uchar.h 22.Sh DESCRIPTION 23The 24.In uchar.h 25header provides support for the C11 Unicode utilities. 26The types and functions provide means for working with data encoded as 27UTF-16 and UTF-32. 28When working in non-Unicode locales, these types may not represent 29Unicode code points. 30.Pp 31The 32.In uchar.h 33header defines the following types: 34.Bl -tag -width Vt 35.It Vt char16_t 36An unsigned integer that can represent 16-bit characters, generally a 37single single UTF-16 code unit. 38A Unicode code point may be one or two UTF-16 code units due to 39surrogate pairs. 40.It Vt char32_t 41An unsigned integer that can represent 32-bit characters, generally a 42single UTF-32 code unit. 43.It Vt size_t 44An unsigned integer that represents the size of various objects. 45This can hold the result of the 46.Sy sizeof 47operator. 48See also 49.Xr stddef.h 3HEAD . 50.It Vt mbstate_t 51An object that holds the state for converting between character 52sequences and wide characters 53.Po 54.Vt wchar_t , 55.Vt char16_t , 56.Vt char32_t 57.Pc . 58See also, 59.Xr wchar.h 3HEAD . 60.El 61The 62.In uchar.h 63header also defines the following functions which are used to convert 64between 65.Vt char16_t 66and 67.Vt char32_t 68sequences and other character sequences: 69.Bl -tag -width cr16rtomb 70.It Xr c16rtomb 3C 71Convert 72.Vt char16_t 73sequences to multi-byte character sequences. 74.It Xr c32rtomb 3C 75Convert 76.Vt char32_t 77sequences to multi-byte character sequences. 78.It Xr mbrtoc16 3C 79Convert multi-byte character sequences to 80.Vt char16_t 81sequences. 82.It Xr mbrtoc32 3C 83Convert multi-byte character sequences to 84.Vt char32_t 85sequences. 86.El 87.Sh INTERFACE STABILITY 88.Sy Committed 89.Sh SEE ALSO 90.Xr c16rtomb 3C , 91.Xr c32rtomb 3C , 92.Xr mbrtoc16 3C , 93.Xr mbrtoc32 3C , 94.Xr stddef.h 3HEAD , 95.Xr wchar.h 3HEAD 96