GeezerVison is showing doc.rust-lang.org — FromUtf8Error in std::string - Rust Struct FromUtf8Error 1.0.0 · Source pub struct FromUtf8Error { /* private fields */ }
Expand descriptionA possible error value when converting a String from a UTF-8 byte vector.
This type is the error type for the from_utf8 method on String. It
is designed in such a way to carefully avoid reallocations: the
into_bytes method will give back the byte vector that was used in the
conversion attempt.
The Utf8Error type provided by std::str represents an error that may
occur when converting a slice of u8s to a &str. In this sense, it’s
an analogue to FromUtf8Error, and you can get one from a FromUtf8Error
through the utf8_error method.
§Examples
// some invalid bytes, in a vector
let bytes = vec![0, 159];
let value = String::from_utf8(bytes);
assert!(value.is_err());
assert_eq!(vec![0, 159], value.unwrap_err().into_bytes());
Implementations§
Returns a slice of u8s bytes that were attempted to convert to a String.
§Examples
// some invalid bytes, in a vector
let bytes = vec![0, 159];
let value = String::from_utf8(bytes);
assert_eq!(&[0, 159], value.unwrap_err().as_bytes());
Converts the bytes into a String lossily, substituting invalid UTF-8
sequences with replacement characters.
See String::from_utf8_lossy for more details on replacement of
invalid sequences, and String::from_utf8_lossy_owned for the
String function which corresponds to this function.
This is useful in conjunction with String::from_utf8 when you need
to branch on whether the bytes are valid UTF-8, but still want to
recover a lossily converted String in the error case. Use
String::from_utf8_lossy_owned if you always need a lossily converted
String.
Since the original String::from_utf8 error records where validation
stopped, this method does not need to re-check the already valid prefix
of the byte sequence.
§Examples
// some invalid bytes
let input: Vec<u8> = b"Hello \xF0\x90\x80World".into();
let (output, had_invalid_utf8) = match String::from_utf8(input) {
Ok(output) => (output, false),
Err(error) => {
// The bytes were not valid UTF-8, but we can still recover a string.
(error.into_utf8_lossy(), true)
}
};
assert_eq!(String::from("Hello �World"), output);
assert!(had_invalid_utf8);
Returns the bytes that were attempted to convert to a String.
This method is carefully constructed to avoid allocation. It will
consume the error, moving out the bytes, so that a copy of the bytes
does not need to be made.
§Examples
// some invalid bytes, in a vector
let bytes = vec![0, 159];
let value = String::from_utf8(bytes);
assert_eq!(vec![0, 159], value.unwrap_err().into_bytes());
Fetch a Utf8Error to get more details about the conversion failure.
The Utf8Error type provided by std::str represents an error that may
occur when converting a slice of u8s to a &str. In this sense, it’s
an analogue to FromUtf8Error. See its documentation for more details
on using it.
§Examples
// some invalid bytes, in a vector
let bytes = vec![0, 159];
let error = String::from_utf8(bytes).unwrap_err().utf8_error();
// the first byte is invalid here
assert_eq!(1, error.valid_up_to());
Trait Implementations§
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Formats the value using the given formatter. Read more
Returns the lower-level source of this error, if any. Read more
👎Deprecated since 1.42.0: use the Display impl or to_string()
👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
🔬This is a nightly-only experimental API. (error_generic_member_access #99301) Provides type-based access to context intended for error reports. Read more
Auto Trait Implementations§Blanket Implementations§
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more
🔬This is a nightly-only experimental API. (clone_to_uninit #126799) Performs copy-assignment from self to dest. Read more
Returns the argument unchanged.
Calls U::from(self).
That is, this conversion is whatever the implementation of
From<T> for U chooses to do.
The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
Uses borrowed data to replace owned data, usually by cloning. Read more
Converts the given value to a String. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion. |