ASCII及相关标准
地球人都知道ASCII就是美国标准信息交换码的缩写,也知道ASCII规定用7位二进制数字来表示英文字符,ASCII被定为国际标准之后的代号为ISO-646.由于ASCII码只使用了7个二进制位,也就是说一个字节可以表示的256个数字中,它仅使用了0~127这128个码位,剩下的128个码位便可以用来做扩展,用来表示一些特定语言所独有的字符,因此对这多余的128个码位的不同扩展,就形成了一系列ISO-8859-*的标准。例如为英语作了专门扩展的字符集编码标准编号为ISO-8859-1,也叫做Latin-1,为希腊语所作的扩展编号为ISO-8859-7等,完整的列表可以参考《Java Internationalization》一书。
整个Unicode项目是由多家计算机软件公司,还包括一些出版行业的公司共同发起的,从上世纪八十年代就已经开始。地球人都知道,对于日文,汉字来说,256个码位是远远不够用的(当然,在当时并不是地球人都知道,起码设计计算机的老美们就不知道,甚至直到今天,还有老美以为米国是世界上唯一的国家)。解决方法很直观也很明显,那就是采用码位多到足够包含所需字符数量的编码方案(即俗话说的头痛医头,脚痛医脚嘛)。这也是Unicode的目标之一,能够包含世界上所有语言的字符(包括汉字,日文,数学符号,音乐符号,还包括各种奇奇怪怪看也看不懂的东西比如象形文字,甲骨文 ,三个代表,科学发展观等等,笑),这个理想,可以说很远大,但很快被发现仅靠Unicode原先的设计无法实现。Unicode的另一个设计目标,对今天影响深远,那就是对所有字符都采用16位编码(即用一个大小不超过2的16次方的整数数字给每个字符编号,注意从这个意义上也可以看出,Unicode是一种编码字符集,而非字符集编码)。说这个设计目标对现今影响深远,完全不是表扬,因为到后来连Unicode的设计者也发现,16位编码仅有65536个码位,远远不能容纳世界上所有的字符,但当意识到这个问题的时候,Unicode大部分的规范已经制定完毕,也有相当程度的普及,完全推倒重来是不现实的。这成了一个遗留问题,也是surrogate pair这种蹩脚解决方案的发端。
无独有偶,在1984年,喜欢以繁多的编号糊弄群众的国际标准化组织ISO也开始着手制定解决不同语言字符数量太大问题的解决方案,这一方案被称为Universal Character Set(UCS 统一字符集),正式的编号是ISO-10646(记得么,ASCII是ISO-646,不知这种安排是否是故意的)。还是ISO高瞻远瞩,一开始就确定了UCS是一个31位的编码字符集(即用一个大小不超过2的31次方的整数数字为每个字符编号),这回真的足以容纳古往今来所有国家,所有语言所包含的字符了(是的,任何国家,任何小语种都包括,也不管这些国家是与台湾建交还是与中国大陆建交,是拥护民主制度还是实行恐怖主义,所以说科学无国界)。虽然后来他们意识到,2的31次方个码位又实在太多了……
天下大势,分久必合。无论Unicode还是UCS,最初的目的都是杜绝各种各样名目繁多形式各异互不兼容老死不相往来的私用扩展编码(好啰嗦的一句话),结果两方确立标准的同时(最初时这两个标准是不兼容的),又形成了割据,这对建设和谐社会是不利的,违反当今世界和平与发展的主旋律,中国政府一向反对任何形式的霸权主义和强权政治,对以米国为首的发达国家……扯远了扯远了。1991年,Unicode联盟与ISO的工作组终于开始讨论Unicode与UCS的合并问题,虽然其后的合并进行了很多年,Unicode初版规范中的很多编码都需要被改写,UCS也需要对码空间的使用进行必要限制,但成果是喜人的。最终,两者统一了抽象字符集(即任何一个在Unicode中存在的字符,在UCS中也存在),且最靠前的65535个字符也统一了字符的编码。对于码空间,两者同意以一百一十万为限(即两者都认为虽然65536不够,但2的31次方又太大,一百一十万是个双方都可接受的码空间大小,也够用,当然,这里说的一百一十万只是个约数),Unicode将码空间扩展到了一百一十万,而UCS将永久性的不使用一百一十万以后的码位。也就是说,现在再讲Unicode只包含65536个字符是不对的。除了对已经定义的字符进行统一外,Unicode联盟与ISO工作组也同意今后任何的扩展工作两者均保持同步,因此虽然从历史的意义上讲Unicode与UCS不是一回事(甚至细节上说也不是一回事),但现在提起Unicode,指代两者均无不妥。何的扩展工作两者均保持同步,因此虽然从历史的意义上讲Unicode与UCS不是一回事(甚至细节上说也不是一回事),但现在提起Unicode,指代两者均无不妥。
文章转载至:http://jiangzhengjun.iteye.com/blog/512034
分享到:
相关推荐
基于Php语言设计并实现了微信小程序的社区门诊管理系统。该小程序基于B/S即所谓浏览器/服务器模式,选择MySQL作为后台数据库去开发并实现一个以微信小程序的社区门诊为核心的系统以及对系统的简易介绍。 用户注册,在用户注册页面通过填写账号、密码、确认密码、姓名、性别、手机、等信息进行注册操作; 用户登录,用户通过登录页面输入账号和密码,并点击登录进行小程序登录操作。 用户登陆微信端后,可以对首页、门诊信息、我的等功能进行详细操作 门诊信息,在门诊信息页面可以查看科室名称、科室类型、医生编号、医生姓名、 职称、坐诊时间、科室图片、点击次数、科室介绍等信息进行预约挂号操作 检查信息,在检查信息页面可以查看检查项目、检查地点、检查时间、检查费用、账号、姓名、医生编号、医生姓名、是否支付、审核回复、审核状态等信息进行支付操作
白色大气风格的设计师作品模板下载.zip
工程经济学自考必备软件下载
UML课程设计报告.doc
白色大气风格响应式彩绘精品水果网站模板.zip
白色简洁风格的别墅整站网站模板.zip
白色简洁风格的APP展示动态源码下载.zip
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于计算机科学与技术等相关专业,更为适合;
白色大气风格的雪山旅游景区CSS3网站模板.zip
介绍 基于python开发的大模型调用基础框架(源码) 使用说明 修改配置文件 cd config vim __init__.py # 在配置文件中添加大模型调用地址,模型名称,API_KEY等配置 启动应用 应用启动分为两种模式,命令行模式和web模式 命令行模式 python main.py cli web模式 python main.py api
基于JavaWeb的小区物业管理系统源代码+数据库 负责数据库的设计和界面的设计和实现; 界面使用 BootStrap 框架,页面自适应效果,修改页面后实现各个功能模块的布局; 负责实现用户登录注册,查看小区活动公告、水电费查询、车费查询信息; 采用的技术:采用 MVC 架构,数据库用 MySql;
白色简单风格的商务企业网站模板下载.zip
1. 平台在家电和电子产品方面的营运情况如何? 2. 哪些品牌和类别销量最高? 3. 用户消费规律 4. 哪些是我们的重点用户? 5. 平台有哪些优势和不足,需要如何改进?
全平台数据库管理工具, 支持 ClickHouse, Presto, Trino, MySQL, PostgreSQL, Apache Druid, ElasticSearch...
白色大气风格的旅游整站网站模板.zip
1、嵌入式物联网单片机项目开发例程,简单、方便、好用,节省开发时间。 2、代码使用KEIL 标准库开发,当前在STM32F030C8T6运行,如果是STM32F030其他型号芯片,依然适用,请自行更改KEIL芯片型号以及FLASH容量即可。 3、软件下载时,请注意keil选择项是jlink还是stlink。 4、有偿指导v:wulianjishu666; 5、如果接入其他传感器,请查看账号发布的其他资料。 6、单片机与模块的接线,在代码当中均有定义,请自行对照。 7、若硬件有差异,请根据自身情况调整代码,程序仅供参考学习。 8、代码有注释说明,请耐心阅读。 9、编译时请注意提示,请选择合适的编译器版本。
Matlab领域上传的视频均有对应的完整代码,皆可运行,亲测可用,适合小白; 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作
白色大气风格的红唇少女女性类网站模板.zip
白色简洁风格的UIDesign设计公司企业网站模板.rar
Linux期末考试试题.doc