本文简要介绍rust语言中 alloc::string::String.from_utf8 的用法。
用法
pub fn from_utf8(vec: Vec<u8>) -> Result<String, FromUtf8Error>将字节向量转换为 String 。
字符串 ( String ) 由字节 ( u8 ) 组成,字节向量 ( Vec<u8> ) 由字节组成,因此此函数在两者之间进行转换。并非所有字节切片都是有效的 String s,但是:String 要求它是有效的 UTF-8。 from_utf8() 检查以确保字节是有效的 UTF-8,然后进行转换。
如果您确定字节切片是有效的 UTF-8,并且您不想产生有效性检查的开销,则此函数有一个不安全版本 from_utf8_unchecked ,它具有相同的行为但跳过查看。
为了效率起见,此方法将注意不复制向量。
如果您需要 &str 而不是 String ,请考虑 str::from_utf8 。
此方法的逆方法是 into_bytes 。
错误
如果切片不是 UTF-8,则返回 Err ,并说明为什么提供的字节不是 UTF-8。您移入的矢量也包括在内。
例子
基本用法:
// some bytes, in a vector
let sparkle_heart = vec![240, 159, 146, 150];
// We know these bytes are valid, so we'll use `unwrap()`.
let sparkle_heart = String::from_utf8(sparkle_heart).unwrap();
assert_eq!("💖", sparkle_heart);不正确的字节:
// some invalid bytes, in a vector
let sparkle_heart = vec![0, 159, 146, 150];
assert!(String::from_utf8(sparkle_heart).is_err());有关如何处理此错误的更多详细信息,请参阅 FromUtf8Error 的文档。
相关用法
- Rust String.from_utf8_lossy用法及代码示例
- Rust String.from_utf8_unchecked用法及代码示例
- Rust String.from_utf8用法及代码示例
- Rust String.from_utf16_lossy用法及代码示例
- Rust String.from_utf16用法及代码示例
- Rust String.from_raw_parts用法及代码示例
- Rust String.try_reserve用法及代码示例
- Rust String.insert_str用法及代码示例
- Rust String.into_raw_parts用法及代码示例
- Rust String.extend_from_within用法及代码示例
- Rust String.clear用法及代码示例
- Rust String.reserve用法及代码示例
- Rust String.push用法及代码示例
- Rust String.as_bytes用法及代码示例
- Rust String.as_str用法及代码示例
- Rust String.with_capacity用法及代码示例
- Rust String.remove用法及代码示例
- Rust String.into_bytes用法及代码示例
- Rust String.replace_range用法及代码示例
- Rust String.split_off用法及代码示例
- Rust String.shrink_to_fit用法及代码示例
- Rust String.into_boxed_str用法及代码示例
- Rust String.new用法及代码示例
- Rust String.insert用法及代码示例
- Rust String.capacity用法及代码示例
注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 alloc::string::String.from_utf8。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。
