Man page - unicode(7)
Packages contas this manual
- pts(4)
- initrd(4)
- bootparam(7)
- proc_driver(5)
- udp(7)
- proc_pid_numa_maps(5)
- standards(7)
- epoll(7)
- proc(5)
- proc_net(5)
- urandom(4)
- proc_pid_fdinfo(5)
- mailaddr(7)
- iso-8859-5(7)
- iso_8859-6(7)
- iconv(1)
- full(4)
- user-keyring(7)
- intro(5)
- ftm(7)
- shm_overview(7)
- feature_test_macros(7)
- proc_crypto(5)
- tzfile(5)
- aio(7)
- boot(7)
- proc_profile(5)
- proc_cgroups(5)
- cpuset(7)
- proc_pid_coredump_filter(5)
- proc_pid_cwd(5)
- proc_uptime(5)
- st(4)
- precedence(7)
- ddp(7)
- proc_zoneinfo(5)
- iso_8859_3(7)
- proc_pid_root(5)
- latin4(7)
- proc_tid_children(5)
- proc_pid_oom_adj(5)
- proc_mounts(5)
- iso_8859-14(7)
- ld-linux(8)
- capabilities(7)
- ptmx(4)
- mouse(4)
- sysfs(5)
- rtld-audit(7)
- proc_partitions(5)
- iso_8859_6(7)
- queue(7)
- proc_pid_pagemap(5)
- proc_pid_stack(5)
- proc_pid_mem(5)
- uri(7)
- ttytype(5)
- namespaces(7)
- proc_sys_user(5)
- latin5(7)
- procfs(5)
- charmap(5)
- proc_sys_kernel(5)
- getent(1)
- ip(7)
- iso_8859-5(7)
- queue(3)
- proc_sys_vm(5)
- random(7)
- iso-8859-10(7)
- process-keyring(7)
- protocols(5)
- system_data_types(7)
- operator(7)
- proc_pid_timerslack_ns(5)
- wtmp(5)
- iso_8859_15(7)
- cp1252(7)
- iso_8859_11(7)
- pkeys(7)
- kmem(4)
- proc_pid_clear_refs(5)
- proc_meminfo(5)
- latin8(7)
- zdump(8)
- fuse(4)
- utf-8(7)
- proc_kpagecount(5)
- futex(7)
- complex(7)
- iso_8859-13(7)
- proc_kcore(5)
- iso_8859-8(7)
- iso_8859_14(7)
- iconvconfig(8)
- network_namespaces(7)
- thread-keyring(7)
- locale(5)
- proc_pid_oom_score_adj(5)
- proc_pid_statm(5)
- signal-safety(7)
- units(7)
- re_format(7)
- proc_pid_comm(5)
- latin1(7)
- glibc(7)
- environ(7)
- iso_8859-9(7)
- tty(4)
- proc_pid_projid_map(5)
- urn(7)
- iso_8859_8(7)
- proc_loadavg(5)
- ipc_namespaces(7)
- proc_pid_syscall(5)
- proc_pid_cgroup(5)
- proc_pid_mountstats(5)
- proc_kpageflags(5)
- utmpx(5)
- termio(7)
- iso-8859-13(7)
- suffixes(7)
- iso_8859-16(7)
- intro(1)
- hostname(7)
- proc_pid_status(5)
- proc_pid_fd(5)
- proc_malloc(5)
- proc_sys_debug(5)
- proc_pid_mounts(5)
- console_codes(4)
- iso_8859_2(7)
- iso-8859-16(7)
- proc_thread-self(5)
- socket(7)
- sock_diag(7)
- null(4)
- raw(7)
- memusagestat(1)
- proc_pid_mountinfo(5)
- proc_sys_sunrpc(5)
- iso-8859-1(7)
- motd(5)
- iso_8859-7(7)
- utmp(5)
- proc_pid_auxv(5)
- latin2(7)
- intro(2)
- proc_modules(5)
- user_namespaces(7)
- iso-8859-2(7)
- proc_version(5)
- ldd(1)
- iso_8859-3(7)
- proc_diskstats(5)
- session-keyring(7)
- ascii(7)
- hosts.equiv(5)
- group(5)
- intro(4)
- proc_cmdline(5)
- resolver(5)
- time(7)
- packet(7)
- proc_kpagecgroup(5)
- hosts(5)
- proc_pid_maps(5)
- proc_tty(5)
- inotify(7)
- msr(4)
- tzselect(8)
- proc_locks(5)
- hpsa(4)
- mount_namespaces(7)
- cgroups(7)
- fanotify(7)
- latin7(7)
- intro(6)
- proc_slabinfo(5)
- proc_timer_list(5)
- proc_kallsyms(5)
- mq_overview(7)
- proc_buddyinfo(5)
- iso_8859-15(7)
- proc_pid_wchan(5)
- iso-8859-8(7)
- proc_stat(5)
- attributes(7)
- proc_bus(5)
- sln(8)
- iso_8859_4(7)
- cgroup_namespaces(7)
- symlink(7)
- fifo(7)
- proc_keys(5)
- locale(1)
- proc_devices(5)
- inode(7)
- iso_8859_13(7)
- nptl(7)
- svipc(7)
- proc_sys_proc(5)
- xattr(7)
- proc_key-users(5)
- iso_8859_10(7)
- erofs(5)
- sd(4)
- proc_ide(5)
- proc_dma(5)
- proc_pid_environ(5)
- utf8(7)
- proc_pid_seccomp(5)
- tcp(7)
- localedef(1)
- path_resolution(7)
- proc_kmsg(5)
- regex(7)
- unix(7)
- netdevice(7)
- host.conf(5)
- nss(5)
- proc_pid_io(5)
- issue(5)
- iso_8859-10(7)
- pipe(7)
- nologin(5)
- vcs(4)
- proc_mtrr(5)
- networks(5)
- resolv.conf(5)
- pldd(1)
- koi8-r(7)
- arp(7)
- ld.so(8)
- wavelan(4)
- proc_pid_uid_map(5)
- zero(4)
- iso-8859-7(7)
- memusage(1)
- iso-8859-6(7)
- latin6(7)
- user-session-keyring(7)
- armscii-8(7)
- shells(5)
- cp1251(7)
- rtnetlink(7)
- koi8-u(7)
- address_families(7)
- cpuid(4)
- core(5)
- pty(7)
- tis-620(7)
- iso_8859-1(7)
- math_error(7)
- iso_8859-4(7)
- proc_pid_autogroup(5)
- man(7)
- cciss(4)
- icmp(7)
- sprof(1)
- glob(7)
- iso-8859-9(7)
- proc_sys_dev(5)
- url(7)
- zic(8)
- sched(7)
- services(5)
- proc_pid(5)
- securetty(5)
- acct(5)
- loop(4)
- vcsa(4)
- iso_8859-2(7)
- proc_vmstat(5)
- pthreads(7)
- proc_timer_stats(5)
- uts_namespaces(7)
- elf(5)
- libc(7)
- proc_sysrq-trigger(5)
- credentials(7)
- proc_sys_net(5)
- numa(7)
- bpf-helpers(7)
- netlink(7)
- proc_pid_personality(5)
- iso_8859-11(7)
- mem(4)
- proc_apm(5)
- proc_pid_task(5)
- proc_cpuinfo(5)
- iso_8859_7(7)
- random(4)
- proc_sys_fs(5)
- proc_pid_ns(5)
- proc_filesystems(5)
- slabinfo(5)
- proc_sys_abi(5)
- latin9(7)
- proc_pid_stat(5)
- proc_execdomains(5)
- proc_swaps(5)
- keyrings(7)
- proc_ioports(5)
- iso_8859_1(7)
- hd(4)
- proc_self(5)
- landlock(7)
- proc_interrupts(5)
- port(4)
- proc_pid_cpuset(5)
- vdso(7)
- iso_8859_5(7)
- intro(7)
- mtrace(1)
- latin3(7)
- proc_sys(5)
- repertoiremap(5)
- lirc(4)
- filesystems(5)
- proc_ksyms(5)
- unicode(7)
- iso_8859_9(7)
- man-pages(7)
- pid_namespaces(7)
- proc_pid_attr(5)
- proc_sysvipc(5)
- intro(3)
- spufs(7)
- proc_config.gz(5)
- sem_overview(7)
- ldconfig(8)
- loop-control(4)
- iso-8859-4(7)
- proc_pid_timers(5)
- smartpqi(4)
- posixoptions(7)
- nsswitch.conf(5)
- proc_pid_map_files(5)
- time_namespaces(7)
- string_copying(7)
- iso-8859-11(7)
- proc_pid_gid_map(5)
- latin10(7)
- proc_pid_setgroups(5)
- ld-linux.so(8)
- ram(4)
- iso-8859-3(7)
- intro(8)
- proc_fb(5)
- vsock(7)
- termcap(5)
- fs(5)
- proc_iomem(5)
- iso-8859-15(7)
- signal(7)
- persistent-keyring(7)
- rtc(4)
- dsp56k(4)
- proc_pid_net(5)
- rpc(5)
- lp(4)
- veth(4)
- hier(7)
- kernel_lockdown(7)
- iso-8859-14(7)
- dir_colors(5)
- proc_scsi(5)
- proc_pid_cmdline(5)
- proc_fs(5)
- x25(7)
- proc_tid(5)
- proc_pid_smaps(5)
- proc_pid_limits(5)
- proc_pid_oom_score(5)
- locale(7)
- proc_pci(5)
- charsets(7)
- iso_8859_16(7)
- ipv6(7)
- tmpfs(5)
- proc_pid_exe(5)
- sysvipc(7)
- udplite(7)
- gai.conf(5)
apt-get install manpages
Available languages:
en fr pt_BR es it pl cs ja ru ro zh_TW zh_CN deManual
| UNICODE(7) | Linux Programmer's Manual | UNICODE(7) |
NAME
Unicode - 16 位統一超級字元集
描述 (DESCRIPTION)
國際標準 ISO 10646 定義了 通用字元集 (Universal Character Set, UCS). UCS 包含所有別的字元集標準裡的字元,並且保證了 互換相容性 (round-trip compatibility), 也就是說,當一個字串在 UCS 和任何別的字元集之間轉換時, 轉換表可以保證不會有資訊丟失現象發生.
UCS 包含了表示幾乎所有已知的語言所必需的字元.該字元集既包 括那些使用擴充套件拉丁語的語言,也包括下面的這些語言: Greek, Cyrillic, Hebrew,Arabic, Armenian, Gregorian, Japanese, Chinese, Hiragana, Katakana, Korean, Hangul, Devangari, Bengali, Gurmukhi, Gujarati, Oriya, Tamil, Telugu, Kannada, alayam, Thai, Lao, Bopomofo,等等.而另外的語言,例如 Tibetian, Khmer, Runic, Ethiopian, Hieroglyphics, 各種 Indo-European 語言, 還有許多其他的語言, 正在被加入其 中.1993 年釋出該標準的時候, 還不清楚怎樣才能對後面加入的這些 語言中的大部分作更好的編碼. 另外, 這些語言所需的字元, 以及由 TeX, PostScript, MS-DOS, Macintosh, Videotext, OCR, 還有很 多字處理系統所提供的大量的圖形, 印刷體, 數學和科學符號, 都已 被包括進來, 還包括了一些特別編碼以保證和所有其它已存在字元集 標準的可逆轉換相容性.
UCS 標準 (ISO 10646) 描述了一個 31 位字元集的體系, 不過, 目前 只使用了前面 65534 個編碼位置 (0x0000-0xfffd, 它們被稱為 基本多語言塊 (Basic Multilingual Plane,BMP)), 分配給了字元, 而且我們 估計只有那些很古怪的字元(比如. Hieroglyphics)為了專門 的科學目的, 才會在將來的某個時候, 需要 16 位的 BMP 之外的部分.
從 0x0000 到 0x007f 之間的 UCS 字元和經典 US-ASCII 字元集是一樣的, 而從 0x0000 到 0x00ff 之間的字元等於 ISO 8859-1 Latin-1 字元集.
組合字元 (COMBINING CHARACTERS)
一些 UCS 編碼被分配給了 組合字元(combining characters). 這樣的情形有點類似於打字機上的重音鍵. 一個組合字元只是 給前面的字元新增一個重音. 在 UCS 裡最重要的重音字元都有他們自己的編碼, 不過, 組合字元機制允許給任一字元新增重音和其他的可識別記號. 組合字元總是跟在那些他們所修飾的字元後面. 例如,德語符號 Umlaut-A (帶分音符的大寫拉丁字母 A)既可以表示為 UCS 編碼 0x00c4, 也可以 用一個正常的"大寫拉丁字母 A"後面跟一個"組合分音符號": 0x0041 0x0308 來表示.
實現級別 (IMPLEMENTATION LEVELS)
由於不是所有系統都支援象組合字元這樣的高階機制, ISO 10646 指明瞭 UCS 的三種實現級別:
- 級別 1 (Level 1)
- 不支援組合字元和 Hangul Jamo 字元(朝鮮語的一種更復 雜的專用的編碼, Hangul 音節編碼成兩或三個亞字元).
- 級別 2 (Level 2)
- 類似於級別1, 卻在一些語言裡面也支援一些組合字元. (比如. Hebrew, Arabic, Devangari, Bengali, Gurmukhi, Gujarati, Oriya, Tamil, Telugo, Kannada, Malayalam, Thai 和 Lao).
- 級別 3 (Level 3)
- 支援所有 UCS 字元.
Unicode 協會發布的 Unicode 1.1 標準和 ISO 10646 所描述的 那樣, 在第 3 執行級別只包括了 UCS (基本多語言塊 Basic Multilingual Plane). Unicode 1.1 還為一些 ISO 10646 的字元定義加 入了一些語義定義.
LINUX 下的 UNICODE (UNICODE UNDER LINUX)
在 Linux 下, 為了降低組合字元的實現複雜性, 目前只包括了執 行級別 1 下的 BMP. 更高的執行級別更適合於專門的字處理格式, 而不是一個普通的系統字元集. 在 linux 下 C 的型別 wchar_t 是一個 有符號位的 32 位整型並且其值解釋為 UCS4 編碼.
本地化設定指明系統字元編碼是使用諸如 UTF-8 還是 ISO 8859-1這樣的編碼. 象庫函式 wctomb, mbtowc, 或者 wprintf 就可以用於內部 wchar_t 字元及字串與系統字元編碼之間做轉換.
私有區 (PRIVATE AREA)
在 BMP 裡, 0xe000 到 0xf8ff 的範圍被標準保留做私用因而永遠不會 被分配給任何字元. 對於 Linux 社群, 該私有區被再細分為可以被任何終端使用者 獨立使用的 0xe000 到 0xefff 的範圍, 以及從 0xf000 到 0xf8ff 給所有 linux 使用者所共用的 linux 區.H. Peter Anvin(<Peter.Anvin@linux.org>, Yggdrasil Computing,Inc) 現在維護登記分配到 linux 區的字元. 該區包括一些 Unicode 中缺少的 DEC VT100 的圖形字元, 這使控制檯 的字型緩衝區可以直接獲得這些字元, 該區還包括一些象 Klingon 這樣的古老語言所使用的字元.
文獻 (LITERATURE)
- *
- Information technology - Universal Multiple-Octet Coded Character Set
(UCS) - Part 1: Architecture and Basic Multilingual Plane. International
Standard ISO 10646-1, International Organization for Standardization,
Geneva, 1993.
這是 UCS 的正式規範, 非常正式, 也很厚, 還非常貴. 如果要定 購資訊, 去看看 www.iso.ch.
- *
- The Unicode Standard - Worldwide Character Encoding Version 1.0. The
Unicode Consortium, Addison-Wesley, Reading, MA, 1991.
Unicode 已經有 1.1.4 版可用,與 1.0 版的差別可以在 ftp.unicode.org 找到. Unicode 2.0 也將在 1996 年出版一本書.
- *
- S. Harbison, G. Steele. C - A Reference Manual. Fourth edition, Prentice
Hall, Englewood Cliffs, 1995, ISBN 0-13-326224-3.
一本很好的 C 語言程式設計參考書. 現在的第四版包含了 1994 年對標準 ISO C 的第一次修正 (ISO/IEC 9899:1990), 添加了大量 處理多種字元集的新的 C 庫函式.
缺憾 (BUGS)
在寫這個手冊頁的時候,linux 對 UCS 的 C 語言庫支援遠未完成.
作者 (AUTHOR)
Markus Kuhn <mskuhn@cip.informatik.uni-erlangen.de>
又見(SEE ALSO)
utf-8(7), http://www.linuxforum.net/books/UTF-8-Unicode.html
[中文版維護人]
mapping <mapping@263.net>
[中文版最新更新]
2000/11/06
《中國linux論壇man手冊頁翻譯計劃》:
http://cmpp.linuxforum.net
跋
本頁面中文版由中文
man 手冊頁計劃提供。
中文 man
手冊頁計劃:https://github.com/man-pages-zh/manpages-zh
| 1995-12-27 | Linux |