pub fn convert(
str_: &[u8],
to_codeset: impl IntoGStr,
from_codeset: impl IntoGStr,
) -> Result<(Slice<u8>, usize), CvtError>
Expand description
Converts a string from one character set to another.
Note that you should use g_iconv() for streaming conversions. Despite the fact that @bytes_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.
§str
the string to convert.
§to_codeset
name of character set into which to convert @str
§from_codeset
character set of @str.
§Returns
If the conversion was successful, a newly allocated buffer
containing the converted string, which must be freed with g_free().
Otherwise [`None`] and @error will be set.
§bytes_read
location to store the number of bytes in
the input string that were successfully converted, or None
.
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
ConvertError::IllegalSequence
occurs, the value
stored will be the byte offset after the last valid
input sequence.
Converts a string from one character set to another.
Note that you should use g_iconv() for streaming conversions. Despite the fact that @bytes_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.
§str
the string to convert.
§to_codeset
name of character set into which to convert @str
§from_codeset
character set of @str.
§Returns
If the conversion was successful, a newly allocated buffer
containing the converted string, which must be freed with g_free().
Otherwise [`None`] and @error will be set.
§bytes_read
location to store the number of bytes in
the input string that were successfully converted, or None
.
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
ConvertError::IllegalSequence
occurs, the value
stored will be the byte offset after the last valid
input sequence.