stringprep\_ucs4\_to\_utf8(3) libidn stringprep\_ucs4\_to\_utf8(3)

# [NAME](#NAME)

stringprep\_ucs4\_to\_utf8 - API function

# [SYNOPSIS](#SYNOPSIS)

**#include &lt;stringprep.h&gt;**

**char * stringprep\_ucs4\_to\_utf8(const uint32\_t * str, ssize\_t len, size\_t * items\_read, size\_t * items\_written);**

# [ARGUMENTS](#ARGUMENTS)

[const uint32\_t * str](#const)

a UCS-4 encoded string

[ssize\_t len](#ssize_t)

the maximum length of *str* to use. If *len* &lt; 0, then the string is terminated with a 0 character.

[size\_t * items\_read](#size_t)

location to store number of characters read read, or **NULL**.

[size\_t * items\_written](#size_t~2)

location to store number of bytes written or **NULL**. The value here stored does not include the trailing 0 byte.

# [DESCRIPTION](#DESCRIPTION)

Convert a string from a 32-bit fixed width representation as UCS-4. to UTF-8. The result will be terminated with a 0 byte.

Return value: a pointer to a newly allocated UTF-8 string. This value must be deallocated by the caller. If an error occurs, **NULL** will be returned.

# [REPORTING BUGS](#REPORTING_BUGS)

Report bugs to &lt;help-libidn@gnu.org&gt;.  
General guidelines for reporting bugs: https://www.gnu.org/gethelp/  
GNU Libidn home page: https://www.gnu.org/software/libidn/

# [COPYRIGHT](#COPYRIGHT)

Copyright © 2002-2026 Simon Josefsson.  
Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved.

# [SEE ALSO](#SEE_ALSO)

The full documentation for **libidn** is maintained as a Texinfo manual. If the **info** and **libidn** programs are properly installed at your site, the command

**info libidn**

should give you access to the complete manual. As an alternative you may obtain the manual from:

**https://www.gnu.org/software/libidn/manual/**

1.44 libidn

---

Document: stringprep_ucs4_to_utf8(3) from libidn 1.44-r5 (Chainguard OS)
Source: https://gitlab.com/libidn/libidn
