请阅读ASCII维基百科页面。您将了解到 ASCII 没有“半”字符。
如今,大多数系统都可以配置为使用UTF-8编码(这是“默认”或至少是 Web 和 Unix 系统上最常用的编码)。
UTF-8 是 Unicode 的可变长度编码。这么多的字符或字形由几个字节表示。对于(官方是粗俗分数的一半unicode 字符),它的 UTF8 编码是两个十六进制字节 0Xc2 0xBD 所以在 C 表示法中½
\302\275
我正在使用 Linux Gnome Character Map 实用程序gucharmap
来查找所有内容。
您可能对UTF-32(使用 32 位字符的固定长度编码,其中 ½ 由 0x000000BD 表示)或什至 UTF-16感兴趣,其中许多字符是 16 位(特别½
是 0x00BD,例如一个 16 位字符) UTF-16),但不是全部。您可能还对宽字符感兴趣,即wchar_t
最近的C或C++标准(在 Windows 上是 UTF-16,在许多 Unix 上是 UTF-32)。
FWIW,Qt 使用QChar作为 UTF-16(Java 也有 UTF-16 char
...),但 Gtk 使用 UTF-8 即可变长度字符。
请注意,对于像 UTF-8 这样的可变长度字符编码,在字符串中获取第 N 个字符(不是第 N 个字节!)需要扫描字符串。此外,某些字节组合不是有效的 UTF-8。