Converts a string from one character set to another.
Note that you should use 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 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.
str |
the string to convert |
len |
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 |
to_codeset |
name of character set into which to convert |
from_codeset |
character set of |
bytes_read |
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 |
bytes_written |
the number of bytes stored in the output buffer (not including the terminating nul). |
If the conversion was successful, a newly allocated nul-terminated string, which must be freed with g_free. Otherwise null and throws will be set. |