我想获取汉字的Unicode值。可能看起来像let values: &[u16] = f("ののの");
使用"の".as_bytes()
时得到[227, 129, 174]
。
当我使用'の'.escape_unicode()
时得到'\u306e'
,0x306e
正是我想要的。
答案 0 :(得分:7)
可以使用char
将u32
类型转换为as
。线
println!("{:x}", 'の' as u32);
将打印“ 306e”(使用{:x}
将数字格式化为十六进制)。
如果您确定所有角色都在BMP中,那么从理论上讲,您也可以直接转换为u16
。对于补充飞机上的角色,这将无声地给出错误的结果,例如'' as u16
返回0xf756
而不是正确的0x1f756
,因此您有充分的理由这样做。
内部,char
被存储为32位数字,因此某些字符c as u32
的{{1}}仅将字符的内存表示重新解释为c
。