pub fn filename_to_utf8(
opsysstring: impl AsRef<Path>,
) -> Result<(GString, usize), CvtError>
Expand description
Converts a string which is in the encoding used by GLib for filenames into a UTF-8 string. Note that on Windows GLib uses UTF-8 for filenames; on other platforms, this function indirectly depends on the [current locale][setlocale].
The input string shall not contain nul characters even if the @len
argument is positive. A nul character found inside the string will result
in error ConvertError::IllegalSequence
.
If the source encoding is not UTF-8 and the conversion output contains a
nul character, the error ConvertError::EmbeddedNul
is set and the
function returns None
. Use g_convert() to produce output that
may contain embedded nul characters.
§opsysstring
a string in the encoding for filenames
§len
the length of the string, 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)
§Returns
The converted string, or None
on an error.
§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.
§bytes_written
the number of bytes stored in the output buffer (not including the terminating nul). Converts a string which is in the encoding used by GLib for filenames into a UTF-8 string. Note that on Windows GLib uses UTF-8 for filenames; on other platforms, this function indirectly depends on the [current locale][setlocale].
The input string shall not contain nul characters even if the @len
argument is positive. A nul character found inside the string will result
in error ConvertError::IllegalSequence
.
If the source encoding is not UTF-8 and the conversion output contains a
nul character, the error ConvertError::EmbeddedNul
is set and the
function returns None
. Use g_convert() to produce output that
may contain embedded nul characters.
§opsysstring
a string in the encoding for filenames
§len
the length of the string, 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)
§Returns
The converted string, or None
on an error.
§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.
§bytes_written
the number of bytes stored in the output buffer (not including the terminating nul).