sdlUtf8strlen function
Count the number of codepoints in a UTF-8 string.
Counts the codepoints, not bytes, in str
, excluding the null
terminator.
If you need to count the bytes in a string instead, consider using SDL_strlen().
Since this handles Unicode, it expects the strings to be well-formed UTF-8 and not a null-terminated string of arbitrary bytes. Bytes that are not valid UTF-8 are treated as Unicode character U+FFFD (REPLACEMENT CHARACTER), so a malformed or incomplete UTF-8 sequence might increase the count by several replacement characters.
\param str The null-terminated UTF-8 string to read. Must not be NULL.
\returns The length (in codepoints, excluding the null terminator) of
src
.
\threadsafety It is safe to call this function from any thread.
\since This function is available since SDL 3.1.3.
\sa SDL_utf8strnlen \sa SDL_strlen
extern SDL_DECLSPEC size_t SDLCALL SDL_utf8strlen(const char *str)
Implementation
int sdlUtf8strlen(String? str) {
final sdlUtf8strlenLookupFunction = libSdl3.lookupFunction<
Uint32 Function(Pointer<Utf8> str),
int Function(Pointer<Utf8> str)>('SDL_utf8strlen');
final strPointer = str != null ? str.toNativeUtf8() : nullptr;
final result = sdlUtf8strlenLookupFunction(strPointer);
calloc.free(strPointer);
return result;
}