to_utf8


Description:

[ CCode ( cname = "g_utf16_to_utf8" ) ]
public string to_utf8 (long len = -1, out long items_read = null, out long items_written = null) throws ConvertError

Convert a string from UTF-16 to UTF-8.

The result will be terminated with a nul byte.

Note that the input is expected to be already in native endianness, an initial byte-order-mark character is not handled specially. [ func@GLib.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 (for example) 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:

len

the maximum length (number of unichar2) of str to use. If len is negative, then the string is nul-terminated.

items_read

location to store number of `gunichar2` read, or `NULL` to ignore. If `NULL`, then [error@GLib.ConvertError.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. The value stored here will never be negative.

items_written

location to store number of bytes written, or `NULL` to ignore. The value stored here does not include the trailing nul, and will never be negative.

str

a UTF-16 encoded string

Returns:

a pointer to a newly allocated UTF-8 string. This value must be freed with [func@GLib.free].