GLib.utf16_to_utf8
function utf16_to_utf8(str: Number(guint16), len: Number(glong), items_read: Number(glong), items_written: Number(glong)): String { // Gjs wrapper for g_utf16_to_utf8() }
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.convert can be used to convert a byte buffer of UTF-16 data of ambiguous endianess.
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 things unpaired surrogates.
- str
a UTF-16 encoded string
- len
the maximum length (number of #gunichar2) of str to use. If len < 0, then the string is nul-terminated.
- items_read
location to store number of words read, or null. If null, then 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.
- items_written
location to store number of bytes written, or null. The value stored here does not include the trailing 0 byte.
- Returns
a pointer to a newly allocated UTF-8 string. This value must be freed with GLib.free. If an error occurs, null will be returned and @error set.