【发布时间】:2021-02-18 10:12:08
【问题描述】:
我想获取汉字的 Unicode 值。它可能看起来像let values: &[u16] = f("ののの");
当我使用"の".as_bytes() 时,我得到了[227, 129, 174]。
当我使用'の'.escape_unicode() 时,我得到了'\u306e',0x306e 正是我想要的。
【问题讨论】:
-
'の' as u16,十六进制编码。如果您想对整个字符串进行操作,并且您确信它都是汉字,您可以将其编码为 UTF-16。 -
...当然,如果您正在寻找代码点,那么强烈推荐使用
as u32。确实,utf-16 对于今天的汉字来说已经足够好了,但总的来说,编码只是一团糟。许多字符将无法使用u16提供正确的代码点。 -
"の????".chars().map(|ch| ch as u32).collect::<Vec<_>>(),尽管在大多数情况下直接使用.chars()就足够了。请注意 ????需要超过 16 位。
标签: rust