rust 如何获取char的unicode值?

bxgwgixi  于 2023-10-20  发布在  其他
关注(0)|答案(1)|浏览(141)

我想得到汉字的Unicode值。它可能看起来像let values: &[u16] = f("ののの");
当我使用"の".as_bytes()时,我得到了[227, 129, 174]
当我使用'の'.escape_unicode()时,我得到了'\u306e'0x306e正是我想要的。

jobtbby3

jobtbby31#

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

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

将打印“306e”(使用{:x}将数字格式化为十六进制)。
如果你确定所有的字符都在BMP中,理论上你也可以直接转换为u16。但是对于来自辅助层的字符,这将默默地给出给予错误的结果,例如。'🝖' as u16返回0xf756,而不是正确的0x1f756,所以你需要一个强有力的理由来这样做。
在内部,char存储为32位数字,因此对于某些字符cc as u32仅将该字符的内存表示重新解释为u32

相关问题