UTF-8(7) | Linux Programmer's Manual | UTF-8(7) |
UTF-8 - ASCII 兼容的多字节 Unicode 编码
The Unicode 字符集使用的是 16 位(双字节)码。最普遍的 Unicode 编码方法( UCS-2) 由一个 16 位双字序列组成。 这样的字符串中包括了的一些如‘\0’或‘/’这样的在文件名中或者是在 C 库函数中具有特殊意义的字符。 另外,如果没有做重大的修正的话,大部分操作 ASCII 码文件的 UNIX 工具不能够正确识别 16 位的字符。因此, UCS-2 对于 Unicode 的文件名、文本文件、环境变量等等来说并不是一种合适的外部编码方式。 ISO 10646 Universal Character Set (UCS), 是 Unicode 的超集,甚至使用了 31 位编码方式, 另外还有使用 32 编码的 UCS-4 也有同样上述的问题。 UCS-4 而用 UTF-8 对 Unicode UCS 编码 就不会存在这样的问题。所以,UTF-8 很明显的是在 UNIX 类操作系统下的 Unicode 字符集的解决方案。
UTF-8 编码具有以下优良属性:
下面的字节串用来表示一个字符。用什么串依照该字符在 UCS 编码中的序号来定:
这里 xxx 的位置二进制位形式的字符编码填入。 只用最短的那个足够表达一个字符编码数的多字节串。
Unicode 字符 0xa9 = 1010 1001 (版权所有的符号) 在 UTF-8 中被编码为:
字符0x2260 = 0010 0010 0110 0000 (“不等于”符号)被编码为:
ISO 10646, Unicode 1.1, XPG4, Plan 9.
Markus Kuhn
unicode(7)
billpan <billpan@yeah.net>
2000/11/09
http://cmpp.linuxforum.net
本页面中文版由中文
man 手册页计划提供。
中文 man
手册页计划:https://github.com/man-pages-zh/manpages-zh
1995-11-26 | Linux |