[我已经注意到,在Rust中,我们不能对大于128的值使用字节表示法,即
let x = "\x01\x17\x7f"
很好,因为所有字符都<128,但是
let x = "\x01\x17\x80"
将失败,因为\x80
= 128。
有没有办法以这种格式编写类似字符串的对象?
在127上方,您进入Unicode领域,并且必须使用\u{codepoint}
转义序列:
let x = "\u{80}";
但是请注意,0x80本身不是UTF-8字符串中的有效字节,因此结果为两个字节:
let x = "\u{80}";
for b in x.bytes() {
println!("{:X}", b);
}
打印
C2
80
如果相反需要值0x80,则不能使用字符串,而必须使用字节片:
fn main() {
let x = b"\x80";
for b in x{
println!("{:X}", b);
}
}
打印
80