---
name: "SDL_UCS4ToUTF8"
section: "3"
platform: "linux"
package: "libsdl3-doc"
version: "3.2.10+ds-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/SDL_UCS4ToUTF8"
---

# SDL\_UCS4ToUTF8(3)

Convert a single Unicode codepoint to UTF-8.

## NAME

SDL\_UCS4ToUTF8 - Convert a single Unicode codepoint to UTF-8.

## HEADER FILE

Defined in SDL3/SDL\_stdinc.h

## SYNOPSIS

```
#include "SDL3/SDL.h"
```

**char \* SDL\_UCS4ToUTF8(Uint32 codepoint, char \*dst);**

## DESCRIPTION

The buffer pointed to by **dst** must be at least 4 bytes long, as this function may generate between 1 and 4 bytes of output.

This function returns the first byte \_after\_ the newly-written UTF-8 sequence, which is useful for encoding multiple codepoints in a loop, or knowing where to write a NULL-terminator character to end the string (in either case, plan to have a buffer of \_more\_ than 4 bytes!).

If **codepoint** is an invalid value (outside the Unicode range, or a UTF-16 surrogate value, etc), this will use U+FFFD (REPLACEMENT CHARACTER) for the codepoint instead, and not set an error.

If **dst** is NULL, this returns NULL immediately without writing to the pointer and without setting an error.

## FUNCTION PARAMETERS

- *codepoint*

  a Unicode codepoint to convert to UTF-8.

- *dst*

  the location to write the encoded UTF-8. Must point to at least 4 bytes!

## RETURN VALUE

Returns the first byte past the newly-written UTF-8 sequence.

## THREAD SAFETY

It is safe to call this function from any thread.

## AVAILABILITY

This function is available since SDL 3.2.0.
