如何获取 char 的 unicode 值?

2024-01-30

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

当我使用"の".as_bytes() I got [227, 129, 174].

当我使用'の'.escape_unicode() I got '\u306e', the 0x306e这正是我想要的。


The char类型可以转换为u32 using as。线路

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

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

如果您确定所有角色都在BMP https://en.wikipedia.org/wiki/Plane_(Unicode)#Basic_Multilingual_Plane,理论上你也可以直接投射到u16。不过,对于来自辅助平面的角色,这会默默地给出错误的结果,例如'????' as u16回报0xf756而不是正确的0x1f756,所以你需要一个强有力的理由来这样做。

在内部,一个char存储为 32 位数字,因此c as u32对于某些角色c仅将字符的记忆表示重新解释为u32.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何获取 char 的 unicode 值? 的相关文章

随机推荐