utf16ToUtf8

fnstring utf16ToUtf8(ushort[] str, out glong itemsRead, out glong itemsWritten)

Convert a string from UTF-16 to UTF-8. The result will be terminated with a 0 byte.

Note that the input is expected to be already in native endianness, an initial byte-order-mark character is not handled specially. [glib.global.convert] can be used to convert a byte buffer of UTF-16 data of ambiguous endianness.

Further note that this function does not validate the result string; it may e.g. include embedded NUL characters. The only validation done by this function is to ensure that the input can be correctly interpreted as UTF-16, i.e. it doesn't contain unpaired surrogates or partial character sequences.

Parameters

stra UTF-16 encoded string
itemsReadlocation to store number of words read, or null. If null, then G_CONVERT_ERROR_PARTIAL_INPUT will be returned in case str contains a trailing partial character. If an error occurs then the index of the invalid input is stored here. It’s guaranteed to be non-negative.
itemsWrittenlocation to store number of bytes written, or null. The value stored here does not include the trailing 0 byte. It’s guaranteed to be non-negative.

Returns

a pointer to a newly allocated UTF-8 string.

This value must be freed with [glib.global.gfree]. If an error occurs, null will be returned and error set.

Throws

[ErrorWrap]