⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 00000002.htm

📁 一份很好的linux入门资料
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<HTML><HEAD>  <TITLE>BBS水木清华站∶精华区</TITLE></HEAD><BODY><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER>发信人:&nbsp;shunder&nbsp;(愈快乐愈堕落......),&nbsp;信区:&nbsp;Linux&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>标&nbsp;&nbsp;题:&nbsp;UTF-8&nbsp;and&nbsp;Unicode&nbsp;FAQ(转载)&nbsp;<BR>发信站:&nbsp;BBS&nbsp;水木清华站&nbsp;(Wed&nbsp;Apr&nbsp;26&nbsp;20:59:05&nbsp;2000)&nbsp;<BR>&nbsp;<BR>UTF-8&nbsp;and&nbsp;Unicode&nbsp;FAQ&nbsp;<BR>by&nbsp;Markus&nbsp;Kuhn&nbsp;<BR>中国LINUX论坛翻译小组&nbsp;xLoneStar[译]&nbsp;2000年2月&nbsp;<BR>&nbsp;<BR>这篇文章说明了在&nbsp;POSIX&nbsp;系统&nbsp;(Linux,Unix)&nbsp;上使用&nbsp;Unicode/UTF-8&nbsp;所需要的信息.&nbsp;&nbsp;<BR>在将来不远的几年里,&nbsp;Unicode&nbsp;已经很接近于取代&nbsp;ASCII&nbsp;与&nbsp;Latin-1&nbsp;编码的位置了.&nbsp;&nbsp;<BR>它不仅允许你处理处理事实上存在于地球上的任何语言文字,&nbsp;而且提供了一个全面的数&nbsp;<BR>学与技术符号集,&nbsp;因此可以简化科学信息交换.&nbsp;<BR>UTF-8&nbsp;编码提供了一种简便而向后兼容的方法,&nbsp;使得那种完全围绕&nbsp;ASCII&nbsp;设计的操作系&nbsp;<BR>统,&nbsp;比如&nbsp;Unix,&nbsp;也可以使用&nbsp;Unicode.&nbsp;UTF-8&nbsp;就是&nbsp;Unix,&nbsp;Linux&nbsp;已经类似的系统使用&nbsp;<BR>&nbsp;Unicode&nbsp;的方式.&nbsp;现在是你了解它的时候了.&nbsp;<BR>&nbsp;<BR>什么是&nbsp;UCS&nbsp;和&nbsp;ISO&nbsp;10646?&nbsp;<BR>国际标准&nbsp;ISO&nbsp;10646&nbsp;定义了&nbsp;通用字符集&nbsp;(Universal&nbsp;Character&nbsp;Set,&nbsp;UCS).&nbsp;UCS&nbsp;是所&nbsp;<BR>有其他字符集标准的一个超集.&nbsp;它保证与其他字符集是双向兼容的.&nbsp;就是说,&nbsp;如果你将&nbsp;<BR>任何文本字符串翻译到&nbsp;UCS格式,&nbsp;然后再翻译回原编码,&nbsp;你不会丢失任何信息.&nbsp;<BR>UCS&nbsp;包含了用于表达所有已知语言的字符.&nbsp;不仅包括拉丁语,希腊语,&nbsp;斯拉夫语,希伯来&nbsp;<BR>语,阿拉伯语,亚美尼亚语和乔治亚语的描述,&nbsp;还包括中文,&nbsp;日文和韩文这样的象形文字&nbsp;<BR>,&nbsp;以及&nbsp;平假名,&nbsp;片假名,&nbsp;孟加拉语,&nbsp;旁遮普语果鲁穆奇字符(Gurmukhi),&nbsp;泰米尔语,&nbsp;印&nbsp;<BR>.埃纳德语(Kannada),&nbsp;Malayalam,&nbsp;泰国语,&nbsp;老挝语,&nbsp;汉语拼音(Bopomofo),&nbsp;Hangul,&nbsp;D&nbsp;<BR>evangari,&nbsp;Gujarati,&nbsp;Oriya,&nbsp;Telugu&nbsp;以及其他数也数不清的语.&nbsp;对于还没有加入的语&nbsp;<BR>言,&nbsp;由于正在研究怎样在计算机中最好地编码它们,&nbsp;因而最终它们都将被加入.&nbsp;这些语&nbsp;<BR>言包括&nbsp;Tibetian,&nbsp;高棉语,&nbsp;Runic(古代北欧文字),&nbsp;埃塞俄比亚语,&nbsp;其他象形文字,&nbsp;以&nbsp;<BR>及各种各样的印-欧语系的语言,&nbsp;还包括挑选出来的艺术语言比如&nbsp;Tengwar,&nbsp;Cirth&nbsp;和&nbsp;&nbsp;<BR>克林贡语(Klingon).&nbsp;UCS&nbsp;还包括大量的图形的,&nbsp;印刷用的,&nbsp;数学用的和科学用的符号,&nbsp;<BR>&nbsp;包括所有由&nbsp;TeX,&nbsp;Postscript,&nbsp;MS-DOS,MS-Windows,&nbsp;Macintosh,&nbsp;OCR&nbsp;字体,&nbsp;以及许&nbsp;<BR>多其他字处理和出版系统提供的字符.&nbsp;<BR>ISO&nbsp;10646&nbsp;定义了一个&nbsp;31&nbsp;位的字符集.&nbsp;然而,&nbsp;在这巨大的编码空间中,&nbsp;迄今为止只分&nbsp;<BR>配了前&nbsp;65534&nbsp;个码位&nbsp;(0x0000&nbsp;到&nbsp;0xFFFD).&nbsp;这个&nbsp;UCS&nbsp;的&nbsp;16位子集称为&nbsp;基本多语言面&nbsp;<BR>&nbsp;(Basic&nbsp;Multilingual&nbsp;Plane,&nbsp;BMP).&nbsp;将被编码在&nbsp;16&nbsp;位&nbsp;BMP&nbsp;以外的字符都属于非常特&nbsp;<BR>殊的字符(比如象形文字),&nbsp;且只有专家在历史和科学领域里才会用到它们.&nbsp;按当前的计&nbsp;<BR>划,&nbsp;将来也许再也不会有字符被分配到从&nbsp;0x000000&nbsp;到&nbsp;0x10FFFF&nbsp;这个覆盖了超过&nbsp;100&nbsp;<BR>&nbsp;万个潜在的未来字符的&nbsp;21&nbsp;位的编码空间以外去了.&nbsp;ISO&nbsp;10646-1&nbsp;标准第一次发表于&nbsp;&nbsp;<BR>1993&nbsp;年,&nbsp;定义了字符集与&nbsp;BMP&nbsp;中内容的架构.&nbsp;定义&nbsp;BMP&nbsp;以外的字符编码的第二部分&nbsp;&nbsp;<BR>ISO&nbsp;10646-2&nbsp;正在准备中,&nbsp;但也许要过好几年才能完成.&nbsp;新的字符仍源源不断地加入到&nbsp;<BR>&nbsp;BMP&nbsp;中,&nbsp;但已经存在的字符是稳定的且不会再改变了.&nbsp;<BR>UCS&nbsp;不仅给每个字符分配一个代码,&nbsp;而且赋予了一个正式的名字.&nbsp;表示一个&nbsp;UCS&nbsp;或&nbsp;Un&nbsp;<BR>icode&nbsp;值的十六进制数,&nbsp;通常在前面加上&nbsp;&quot;U+&quot;,&nbsp;就象&nbsp;U+0041&nbsp;代表字符&quot;拉丁大写字母&nbsp;<BR>A&quot;.&nbsp;UCS&nbsp;字符&nbsp;U+0000&nbsp;到&nbsp;U+007F&nbsp;与&nbsp;US-ASCII(ISO&nbsp;646)&nbsp;是一致的,&nbsp;U+0000&nbsp;到&nbsp;U+00F&nbsp;<BR>F&nbsp;与&nbsp;ISO&nbsp;8859-1(Latin-1)&nbsp;也是一致的.&nbsp;从&nbsp;U+E000&nbsp;到&nbsp;U+F8FF,&nbsp;已经&nbsp;BMP&nbsp;以外的大范&nbsp;<BR>围的编码是为私用保留的.&nbsp;<BR>&nbsp;<BR>什么是组合字符?&nbsp;<BR>UCS里有些编码点分配给了&nbsp;组合字符.它们类似于打字机上的无间隔重音键.&nbsp;单个的组合&nbsp;<BR>字符不是一个完整的字符.&nbsp;它是一个类似于重音符或其他指示标记,&nbsp;加在前一个字符后&nbsp;<BR>面.&nbsp;因而,&nbsp;重音符可以加在任何字符后面.&nbsp;那些最重要的被加重的字符,&nbsp;就象普通语言&nbsp;<BR>的正字法(orthographies&nbsp;of&nbsp;common&nbsp;languages)里用到的那种,&nbsp;在&nbsp;UCS&nbsp;里都有自己的&nbsp;<BR>位置,&nbsp;以确保同老的字符集的向后兼容性.&nbsp;既有自己的编码位置,&nbsp;又可以表示为一个普&nbsp;<BR>通字符跟随一个组合字符的被加重字符,&nbsp;被称为&nbsp;预作字符(precomposed&nbsp;characters).&nbsp;<BR>&nbsp;UCS&nbsp;里的预作字符是为了同没有预作字符的旧编码,&nbsp;比如&nbsp;ISO&nbsp;8859,&nbsp;保持向后兼容性&nbsp;<BR>而设的.&nbsp;组合字符机制允许在任何字符后加上重音符或其他指示标记,&nbsp;这在科学符号中&nbsp;<BR>特别有用,&nbsp;比如数学方程式和国际音标字母,&nbsp;可能会需要在一个基本字符后组合上一个&nbsp;<BR>或多个指示标记.&nbsp;<BR>组合字符跟随着被修饰的字符.&nbsp;比如,&nbsp;德语中的元音变音字符&nbsp;(&quot;拉丁大写字母A&nbsp;加上分&nbsp;<BR>音符&quot;),&nbsp;既可以表示为&nbsp;UCS&nbsp;码&nbsp;U+00C4&nbsp;的预作字符,&nbsp;也可以表示成一个普通&nbsp;&quot;拉丁大写&nbsp;<BR>字母A&quot;&nbsp;跟着一个&quot;组合分音符&quot;:U+0041&nbsp;U+0308&nbsp;这样的组合.&nbsp;当需要堆叠多个重音符,&nbsp;&nbsp;<BR>或在一个基本字符的上面和下面都要加上组合标记时,&nbsp;可以使用多个组合字符.&nbsp;比如在&nbsp;<BR>泰国文中,&nbsp;一个基本字符最多可加上两个组合字符.&nbsp;<BR>&nbsp;<BR>什么是&nbsp;UCS&nbsp;实现级别?&nbsp;<BR>不是所有的系统都需要支持象组合字符这样的&nbsp;UCS&nbsp;里所有的先进机制.&nbsp;因此&nbsp;ISO&nbsp;1064&nbsp;<BR>6&nbsp;指定了下列三种实现级别:&nbsp;<BR>级别1&nbsp;<BR>不支持组合字符和&nbsp;Hangul&nbsp;Jamo&nbsp;字符&nbsp;(一种特别的,&nbsp;更加复杂的韩国文的编码,&nbsp;使用两&nbsp;<BR>个或三个子字符来编码一个韩文音节)&nbsp;<BR>级别2&nbsp;<BR>类似于级别1,&nbsp;但在某些文字中,&nbsp;允许一列固定的组合字符&nbsp;(例如,&nbsp;希伯来文,&nbsp;阿拉伯文&nbsp;<BR>,&nbsp;Devangari,&nbsp;孟加拉语,&nbsp;果鲁穆奇语,&nbsp;Gujarati,&nbsp;Oriya,&nbsp;泰米尔语,&nbsp;Telugo,&nbsp;印.埃纳&nbsp;<BR>德语,&nbsp;Malayalam,&nbsp;泰国语和老挝语).&nbsp;如果没有这最起码的几个组合字符,&nbsp;UCS&nbsp;就不能&nbsp;<BR>完整地表达这些语言.&nbsp;<BR>级别3&nbsp;<BR>支持所有的&nbsp;UCS&nbsp;字符,&nbsp;例如数学家可以在任意一个字符上加上一个&nbsp;tilde(颚化符号,西&nbsp;<BR>班牙语字母上面的~)或一个箭头(或两者都加).&nbsp;<BR>&nbsp;<BR>什么是&nbsp;Unicode?&nbsp;<BR>历史上,&nbsp;有两个独立的,&nbsp;创立单一字符集的尝试.&nbsp;一个是国际标准化组织(ISO)的&nbsp;ISO&nbsp;&nbsp;<BR>10646&nbsp;项目,&nbsp;另一个是由(一开始大多是美国的)多语言软件制造商组成的协会组织的&nbsp;U&nbsp;<BR>nicode&nbsp;项目.&nbsp;幸运的是,&nbsp;1991年前后,&nbsp;两个项目的参与者都认识到,&nbsp;世界不需要两个不&nbsp;<BR>同的单一字符集.&nbsp;它们合并双方的工作成果,&nbsp;并为创立一个单一编码表而协同工作.&nbsp;两&nbsp;<BR>个项目仍都存在并独立地公布各自的标准,&nbsp;但&nbsp;Unicode&nbsp;协会和&nbsp;ISO/IEC&nbsp;JTC1/SC2&nbsp;都同&nbsp;<BR>意保持&nbsp;Unicode&nbsp;和&nbsp;ISO&nbsp;10646&nbsp;标准的码表兼容,&nbsp;并紧密地共同调整任何未来的扩展.&nbsp;<BR>那么&nbsp;Unicode&nbsp;和&nbsp;ISO&nbsp;10646&nbsp;不同在什么地方?&nbsp;<BR>Unicode&nbsp;协会公布的&nbsp;Unicode&nbsp;标准&nbsp;严密地包含了&nbsp;ISO&nbsp;10646-1&nbsp;实现级别3的基本多语&nbsp;<BR>言面.&nbsp;在两个标准里所有的字符都在相同的位置并且有相同的名字.&nbsp;<BR>Unicode&nbsp;标准额外定义了许多与字符有关的语义符号学,&nbsp;一般而言是对于实现高质量的&nbsp;<BR>印刷出版系统的更好的参考.&nbsp;Unicode&nbsp;详细说明了绘制某些语言(比如阿拉伯语)表达形&nbsp;<BR>式的算法,&nbsp;处理双向文字(比如拉丁与希伯来文混合文字)的算法和&nbsp;排序与字符串比较&nbsp;&nbsp;<BR>所需的算法,&nbsp;以及其他许多东西.&nbsp;<BR>另一方面,&nbsp;ISO&nbsp;10646&nbsp;标准,&nbsp;就象广为人知的&nbsp;ISO&nbsp;8859&nbsp;标准一样,&nbsp;只不过是一个简单&nbsp;<BR>的字符集表.&nbsp;它指定了一些与标准有关的术语,&nbsp;定义了一些编码的别名,&nbsp;并包括了规范&nbsp;<BR>说明,&nbsp;指定了怎样使用&nbsp;UCS&nbsp;连接其他&nbsp;ISO&nbsp;标准的实现,&nbsp;比如&nbsp;ISO&nbsp;6429&nbsp;和&nbsp;ISO&nbsp;2022.&nbsp;<BR>&nbsp;还有一些与&nbsp;ISO&nbsp;紧密相关的,&nbsp;比如&nbsp;ISO&nbsp;14651&nbsp;是关于&nbsp;UCS&nbsp;字符串排序的.&nbsp;<BR>考虑到&nbsp;Unicode&nbsp;标准有一个易记的名字,&nbsp;且在任何好的书店里的&nbsp;Addison-Wesley&nbsp;里有&nbsp;<BR>,&nbsp;只花费&nbsp;ISO&nbsp;版本的一小部分,&nbsp;且包括更多的辅助信息,&nbsp;因而它成为使用广泛得多的参&nbsp;<BR>考也就不足为奇了.&nbsp;然而,&nbsp;一般认为,&nbsp;用于打印&nbsp;ISO&nbsp;10646-1&nbsp;标准的字体在某些方面的&nbsp;<BR>质量要高于用于打印&nbsp;Unicode&nbsp;2.0的.&nbsp;专业字体设计者总是被建议说要两个标准都实现&nbsp;<BR>,&nbsp;但一些提供的样例字形有显著的区别.&nbsp;ISO&nbsp;10646-1&nbsp;标准同样使用四种不同的风格变&nbsp;<BR>体来显示表意文字如中文,&nbsp;日文和韩文&nbsp;(CJK),&nbsp;而&nbsp;Unicode&nbsp;2.0&nbsp;的表里只有中文的变体&nbsp;<BR>.&nbsp;这导致了普遍的认为&nbsp;Unicode&nbsp;对日本用户来说是不可接收的传说,&nbsp;尽管是错误的.&nbsp;<BR>&nbsp;<BR>什么是&nbsp;UTF-8?&nbsp;<BR>首先&nbsp;UCS&nbsp;和&nbsp;Unicode&nbsp;只是分配整数给字符的编码表.&nbsp;现在存在好几种将一串字符表示&nbsp;<BR>为一串字节的方法.&nbsp;最显而易见的两种方法是将&nbsp;Unicode&nbsp;文本存储为&nbsp;2&nbsp;个&nbsp;或&nbsp;4&nbsp;个字&nbsp;<BR>节序列的串.&nbsp;这两种方法的正式名称分别为&nbsp;UCS-2&nbsp;和&nbsp;UCS-4.&nbsp;除非另外指定,&nbsp;否则大多&nbsp;<BR>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -