1 .\" Copyright (C) Markus Kuhn, 1996
2 .\" 中文版 Copyright (c) Bill Pan 和 www.LinuxForum.net
4 .\" This is free documentation; you can redistribute it and/or
5 .\" modify it under the terms of the GNU General Public License as
6 .\" published by the Free Software Foundation; either version 2 of
7 .\" the License, or (at your option) any later version.
9 .\" The GNU General Public License's references to "object code"
10 .\" and "executables" are to be interpreted as the output of any
11 .\" document formatting or typesetting system, including
12 .\" intermediate and printed output.
14 .\" This manual is distributed in the hope that it will be useful,
15 .\" but WITHOUT ANY WARRANTY; without even the implied warranty of
16 .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 .\" GNU General Public License for more details.
19 .\" You should have received a copy of the GNU General Public
20 .\" License along with this manual; if not, write to the Free
21 .\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111,
24 .\" 1995-11-26 Markus Kuhn
25 .\" First version written
27 .TH UTF-8 7 "1995-11-26" "Linux" "Linux Programmer's Manual"
29 UTF-8 \- ASCII 兼容的多字节 Unicode 编码
33 字符集使用的是 16 位(双字节)码。最普遍的 Unicode 编码方法(
36 这样的字符串中包括了的一些如‘\\0’或‘/’这样的在文件名中或者是在 C
38 另外,如果没有做重大的修正的话,大部分操作 ASCII 码文件的 UNIX
43 的文件名、文本文件、环境变量等等来说并不是一种合适的外部编码方式。
44 .BR "ISO 10646 Universal Character Set (UCS)" ,
45 是 Unicode 的超集,甚至使用了 31 位编码方式,
46 另外还有使用 32 编码的 UCS-4 也有同样上述的问题。
54 就不会存在这样的问题。所以,UTF-8 很明显的是在 UNIX 类操作系统下的
64 字符从 0x00000000 到 0x0000007f (传统的
66 字符)简单地编码为字节 0x00 到 0x7f (与 ASCII 码兼容)。
67 这意味着只包含 7 位 ASCII 字符的文件和字符串在
76 字符被编码成为多字节序列。该序列全部是由 0x80 到 0fd 的字符组成,
79 对于‘\\0’和‘\’这样的特殊字符来说也就不会有问题了。
87 所有 2^32 次方的 UCS 码都能够使用
99 多字节串的开始字符总是 0xc0 到 0xfd 之间的字符,并会指出该串的长度。
112 只能增加到 3 个字节长。由于 Linux 只使用 16 位的
120 下面的字节串用来表示一个字符。用什么串依照该字符在 UCS 编码中的序号来定:
122 0x00000000 - 0x0000007F:
125 0x00000080 - 0x000007FF:
129 0x00000800 - 0x0000FFFF:
134 0x00010000 - 0x001FFFFF:
140 0x00200000 - 0x03FFFFFF:
147 0x04000000 - 0x7FFFFFFF:
158 只用最短的那个足够表达一个字符编码数的多字节串。
161 字符 0xa9 = 1010 1001 (版权所有的符号) 在 UTF-8 中被编码为:
164 11000010 10101001 = 0xc2 0xa9
167 字符0x2260 = 0010 0010 0110 0000 (“不等于”符号)被编码为:
170 11100010 10001001 10100000 = 0xe2 0x89 0xa0
173 ISO 10646, Unicode 1.1, XPG4, Plan 9.
180 .B billpan <billpan@yeah.net>
183 .SH "《中国linux论坛man手册页翻译计划》:"
184 .BI http://cmpp.linuxforum.net