阅读背景:

编码问题以及其根本原因

来源:互联网 

计算机技术领域的复杂性很多或者说大多数都是在保持前向兼容性的需求下增加的复杂性,两个最明显的例子就是intel的cpu体系结构和字符的编码,本文不再说cpu方面的东西而着重说一下编码,关于intel cpu的发展随便找点资料都说得很详细,而关于字符编码的资料却都很晦涩难理解。必须承认,如果计算机不和商业结合的话,很多兼容性引起的问题便不会存在,因此也就不必引入过多的复杂性了,并且,更重要的是,任何技术一开始的时候都是很简单,原理很清晰的,甚至很美观的,正是随着和商业的进一步结合,应用面逐渐变宽,需求也进一步扩展,因此复杂性也就增加了,这些复杂性大多都是在不忍舍弃旧设计所带来的,如果不需要兼容以前的东西,那么完全可以再直接设计一个简单的新系统...最初的ascii码是多么的好,够用,并且刚刚够用,不多也不少,美国人觉得事情已经完成了,可是事情仅仅是在英语国家完成了,在中国,甚至在日本还远远没有完成,大量的中文和假名无法被编码,以至于很多国家为了扎进IT这个大的洪流不得不引入自己的编码规范,于是就到了军阀纷争的阶段,大量的编码规范被提出来。造成这种结果的原因就是美国当年设计ascii码的时候没有把IT当成是全世界的,而只是当成了英语国家的,如果现在再让美国人设计一个编码规范,那么他们肯定不会这么想了,因为他们和中国等国家有大量的生意要做,美国人肯定会设计一种和ascii码同样简单,同样合理,但是能不多不少的融入全世界字符的编码系统,事实上,他们真的这么做了,他们的设计成果就是unicode(虽然unicode组织拥有大量的非美国人,但是大部分还是美国人),可以把现在的unicode比作是全世界的ascii,鉴于ascii是American Standard Code for Information Interchange的缩写,unicode完全可以称作wscii--World-wide Standard Code for Information Interchange,和ascii不同的是,unicode更加抽象了,unicode并不规定传输交换格式,而只是为每一个字符编码了一个数字,是为每个字符而不是每个字形,所以对于简体中文的“户”字和日语中文的“戸”字,合理的办法就是将它们编码到同一个数字,毕竟它们的不同仅仅是书写上的不同,和习惯相关而和字符编码无关,由于unicode是双字节的且不含大小端的信息,因此它不能直接用于交换传输,而必须指定传输编码格式,比如规定一个双字节数字如何编码成单字节流的utf-8编码,以utf-8作为传输编码为例,unicode+utf8一起组成了最终的编码规则,其实是可以直接传输unicode数字的,只要指定大小端即可。计算机技术领域的复杂性很多或者说大多数都是在保持前向兼容性的需求下增加的复杂性,两个最明显的例




你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: