我扫描了Rust文档,寻找在字符编码之间转换的方法,但没有找到任何东西.我错过什么了吗?
Rust语言及其标准库是否(直接或间接)支持它,甚至计划在不久的将来支持它?
其中一个答案表明,有一个简单的解决方案,因为u8
可以转换为(Unicode)char
s.由于Unicode是ISO-8859-1中代码点的超集,这是一个1:1映射,在UTF-8中编码为多个字节,UTF-8是Rust中String
s的内部编码.
fn main() {
println!("{}", 196u8 as char);
println!("{}", (196u8 as char) as u8);
println!("{}", 'Ä' as u8);
println!("{:?}", 'Ä'.to_string().as_bytes());
println!("{:?}", "Ä".as_bytes());
println!("{}",'Ä' == 196u8 as char);
}
给予:
Ä
196
196
[195, 132]
[195, 132]
true
我甚至都没想过要工作!