我注意到在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,则不能使用字符串,而必须使用 byte slice :
fn main() {
let x = b"\x80";
for b in x {
println!("{:X}", b);
}
}
打印
80
关于rust - 是否可以在rust中写入值大于127的文字字节字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62047638/