CharacterSet.convert

Converts a string from one character set to another.

Note that you should use g_iconv() for streaming conversions. Despite the fact that @byes_read can return information about partial characters, the g_convert_... functions are not generally suitable for streaming. If the underlying converter maintains internal state, then this won't be preserved across successive calls to g_convert(), g_convert_with_iconv() or g_convert_with_fallback(). (An example of this is the GNU C converter for CP1255 which does not emit a base character until it knows that the next character is not a mark that could combine with the base character.)

Using extensions such as "//TRANSLIT" may not work (or may not work well) on many platforms. Consider using g_str_to_ascii() instead.

struct CharacterSet
static
string
convert
(
string str
,
ptrdiff_t len
,
string toCodeset
,,
out size_t bytesRead
,
out size_t bytesWritten
)

Parameters

str string

the string to convert

len ptrdiff_t

the length of the string in bytes, or -1 if the string is nul-terminated (Note that some encodings may allow nul bytes to occur inside strings. In that case, using -1 for the @len parameter is unsafe)

toCodeset string

name of character set into which to convert @str

fromCodeset string

character set of @str.

bytesRead size_t

location to store the number of bytes in the input string that were successfully converted, or %NULL. Even if the conversion was successful, this may be less than @len if there were partial characters at the end of the input. If the error #G_CONVERT_ERROR_ILLEGAL_SEQUENCE occurs, the value stored will the byte offset after the last valid input sequence.

bytesWritten size_t

the number of bytes stored in the output buffer (not including the terminating nul).

Return: If the conversion was successful, a newly allocated nul-terminated string, which must be freed with g_free(). Otherwise %NULL and @error will be set.

Throws

GException on failure.

Meta