pub struct FromUtf8Error { /* private fields */ }
A 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.
// 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());
impl FromUtf8Error
pub fn as_bytes(&self) -> &[u8] ⓘ
Returns a slice of u8s bytes that were attempted to convert to a String.
// 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());
pub fn into_utf8_lossy(self) -> String
string_from_utf8_lossy_owned #129436)
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.
#![feature(string_from_utf8_lossy_owned)]
// some invalid bytes
let input: Vec<u8> = b"Hello \xF0\x90\x80World".into();
let output = String::from_utf8(input).unwrap_or_else(|e| e.into_utf8_lossy());
assert_eq!(String::from("Hello �World"), output);pub fn into_bytes(self) -> Vec<u8> ⓘ
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.
// 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());
pub fn utf8_error(&self) -> Utf8Error
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.
// 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());
impl Clone for FromUtf8Error
fn clone(&self) -> FromUtf8Error
fn clone_from(&mut self, source: &Self)
source. Read more
impl Debug for FromUtf8Error
fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>
impl Display for FromUtf8Error
fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>
impl Error for FromUtf8Error
fn source(&self) -> Option<&(dyn Error + 'static)>
fn description(&self) -> &str
fn cause(&self) -> Option<&dyn Error>
fn provide<'a>(&'a self, request: &mut Request<'a>)
error_generic_member_access #99301)
impl PartialEq for FromUtf8Error
fn eq(&self, other: &FromUtf8Error) -> bool
self and other values to be equal, and is used by ==.fn ne(&self, other: &Rhs) -> bool
!=. The default implementation is almost always sufficient, and should not be overridden without very good reason.impl Eq for FromUtf8Error
impl StructuralPartialEq for FromUtf8Error
impl Freeze for FromUtf8Error
impl RefUnwindSafe for FromUtf8Error
impl Send for FromUtf8Error
impl Sync for FromUtf8Error
impl Unpin for FromUtf8Error
impl UnwindSafe for FromUtf8Error
impl<T> Any for Twhere
T: 'static + ?Sized,impl<T> Borrow<T> for Twhere
T: ?Sized,impl<T> BorrowMut<T> for Twhere
T: ?Sized,impl<T> CloneToUninit for Twhere
T: Clone,unsafe fn clone_to_uninit(&self, dest: *mut u8)
clone_to_uninit #126799)
impl<T> From<T> for T
fn from(t: T) -> T
Returns the argument unchanged.
impl<T, U> Into<U> for Twhere
U: From<T>,fn into(self) -> U
Calls U::from(self).
That is, this conversion is whatever the implementation of From<T> for U chooses to do.
impl<T> ToOwned for Twhere
T: Clone,type Owned = T
fn to_owned(&self) -> T
fn clone_into(&self, target: &mut T)
impl<T> ToString for Twhere
T: Display + ?Sized,impl<T, U> TryFrom<U> for Twhere
U: Into<T>,type Error = Infallible
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
impl<T, U> TryInto<U> for Twhere
U: TryFrom<T>,
© 2010 The Rust Project Developers
Licensed under the Apache License, Version 2.0 or the MIT license, at your option.
https://doc.rust-lang.org/std/string/struct.FromUtf8Error.html