我想得到汉字的Unicode值.它可能看起来像let values: &[u16] = f("???");
当我使用时,"?".as_bytes()我得到了[227, 129, 174].
当我使用'?'.escape_unicode()我'\u306e'的0x306e正是我想要的.
该char类型可以u32使用as.这条线
println!("{:x}", '?' as u32);
Run Code Online (Sandbox Code Playgroud)
将打印"306e"({:x}用于将数字格式化为十六进制).
如果您确定所有的角色都在BMP中,理论上您也可以直接投入u16.对于来自补充平面的角色,这会默默地给出错误的结果,例如'' as u16返回0xf756而不是正确的0x1f756,所以你需要有充分的理由去做.
在内部,a char存储为32位数字,因此c as u32对于某些字符,c仅将字符的内存表示重新解释为u32.
| 归档时间: |
|
| 查看次数: |
323 次 |
| 最近记录: |