from |
to |
函数 |
&str |
String |
String::from(s) 或 s.to_string() 或 s.to_owned() |
&str |
&[u8] |
s.as_bytes() |
&str |
Vec<u8> |
s.as_bytes().to_vec() |
String |
&[u8] |
s.as_bytes() |
String |
&str |
s.as_str() 或 &s |
String |
Vec<u8> |
s.into_bytes() |
&[u8] |
&str |
std::str::from_utf8(s).unwrap() |
&[u8] |
String |
String::from_utf8(s).unwrap() |
&[u8] |
Vec<u8> |
s.to_vec() |
Vec<u8> |
&str |
std::str::from_utf8(&s).unwrap() |
Vec<u8> |
String |
String::from_utf8(&s).unwrap() |
Vec<u8> |
&[u8] |
&s 或 s.as_slice() |
修正下面表格KcW华陈数据科技 KcW华陈数据科技 &str -> String--| String::from(s) or s.to_string() or s.to_owned()KcW华陈数据科技 &str -> &[u8]---| s.as_bytes()KcW华陈数据科技 &str -> Vec<u8>-| s.as_bytes().to_vec() or s.as_bytes().to_owned()KcW华陈数据科技 String -> &str----| &s if possible* else s.as_str()KcW华陈数据科技 String -> &[u8]---| s.as_bytes()KcW华陈数据科技 String -> Vec<u8>-| s.into_bytes()KcW华陈数据科技 &[u8] -> &str----| std::str::from_utf8(s).unwrap()KcW华陈数据科技 &[u8] -> String--| String::from_utf8(s).unwrap()KcW华陈数据科技 &[u8] -> Vec<u8>-| s.to_vec()KcW华陈数据科技 Vec<u8> -> &str----| std::str::from_utf8(&s).unwrap()KcW华陈数据科技 Vec<u8> -> String--| String::from_utf8(s).unwrap()KcW华陈数据科技 Vec<u8> -> &[u8]---| &s if possible* else s.as_slice()KcW华陈数据科技
上面转换内容已在网友提示下修正,之前版本答案有误导KcW华陈数据科技 KcW华陈数据科技
// String 转 &str
let s = String::from("hello");
let s_slice: &str = &s;
// &str 转 String
let s = "hello";
let s_string: String = s.to_string(); |
// Vec<u8> 转 &[u8]
let v: Vec<u8> = vec![72, 101, 108, 108, 111]; // "Hello"
let v_slice: &[u8] = &v;
// &[u8] 转 Vec<u8>
let v_slice: &[u8] = &[72, 101, 108, 108, 111]; // "Hello"
let v_vec: Vec<u8> = v_slice.to_vec(); |
// String 转 Vec<u8>
let s = String::from("hello");
let v: Vec<u8> = s.into_bytes();
// Vec<u8> 转 String
let v: Vec<u8> = vec![104, 101, 108, 108, 111]; // "hello"
let s: String = String::from_utf8_lossy(&v).to_string(); |
// &str 转 &[u8]
let s: &str = "hello";
let s_bytes: &[u8] = s.as_bytes();
// &[u8] 转 &str
let s_bytes: &[u8] = &[104, 101, 108, 108, 111]; // "hello"
let s_str: &str = std::str::from_utf8(s_bytes).unwrap(); |
KcW华陈数据科技 KcW华陈数据科技 注意:在这些转换中,可能会出现编码问题。特别是,在将字节序列转换为字符串时,必须考虑编码方式(例如UTF-8),否则会导致错误。在某些情况下,使用特定的编码方式(例如ISO 8859-1)可能更合适。KcW华陈数据科技 KcW华陈数据科技 KcW华陈数据科技 KcW华陈数据科技
|