如何获得char的unicode值?

时间:2018-10-21 20:23:27

标签: rust

我想获取汉字的Unicode值。可能看起来像let values: &[u16] = f("ののの");

使用"の".as_bytes()时得到[227, 129, 174]

当我使用'の'.escape_unicode()时得到'\u306e'0x306e正是我想要的。

1 个答案:

答案 0 :(得分:7)

可以使用charu32类型转换为as。线

println!("{:x}", 'の' as u32);

将打印“ 306e”(使用{:x}将数字格式化为十六进制)。

如果您确定所有角色都在BMP中,那么从理论上讲,您也可以直接转换为u16。对于补充飞机上的角色,这将无声地给出错误的结果,例如'' as u16返回0xf756而不是正确的0x1f756,因此您有充分的理由这样做。

内部,char被存储为32位数字,因此某些字符c as u32的{​​{1}}仅将字符的内存表示重新解释为c