编码问题的思考

编码问题起源:

计算机只认01,要使计算机可以表示人类认识的符号标志,就要使用编码来表示了。最初计算机是美国人发明的,他们为了表示英文字母和一些标点,就发明了ASCII码。然后计算机到了欧洲,ASCII码无法满足欧洲人的需求就有了扩展的ASCII码。后来计算机到了中国,中国人发现自己的文字在计算机上无法显示,就发明了GB2312编码。最后就发展到不同的国家就有不同的实现。

这样就可以解决了自己国家的问题了,不过随着互联网的普及,不同国家的通讯愈来愈频繁了,就发生了乱码的问题了。后来有人为了解决这个问题,就发明了一套Unicode的编码了。

 

下面介绍几个重要的编码:

1.ASCII

用一个字节(如0000 0000)即两个十六进制数(如FF)表示,可表示256个状态,但只取其中的128个有用字符(该字节的最高位没有用到,为0)。

2.可扩展的ASCII编码。

主要是欧洲国家使用,使用了ASCII码的高位表示更多的符号,有多个不同的扩展。主要的是ISO8859-1编码(拉丁语系)。

3.GB2312->GBK->GB13000

ASCII码无法表示中文。中国人就使用GB码表示,GB2312GBKGB13000就是其中的各个标准。最主要的不同就是收录的汉字多少不同,但是编码是兼容的。

4.BIG5

繁体中文的编码,主要是用于台湾和香港。

5.Unicode

Unicode只是一个符号集,它只规定了符号的二进制代码,却没有规定这个二进制代码应该如何存储。内容包含符号6811个,Unicode19926月通过DISDraf International Standard),目前版本V2.01996公布,汉字20902个,韩文拼音11172个,造字区6400个,保留20249个,共计65534个。Unicode编码后的大小是一样的.例如一个英文字母 "a" 和 一个汉字 "",编码后都是占用的空间大小是一样的,都是两个字节。

5.UTF-8

UTF-8Unicode的实现方式之一。

因为对于英文字母,unicode也需要两个字节来表示。所以Unicode不便于传输和存储。因此而产生了UTF编码,UTF编码兼容ISO8859-1编码,同时也可以用来表示所有语言的字符,不过,UTF编码是不定长编码,每一个字符的长度从1-6个字节不等。另外,UTF编码自带简单的校验功能。一般来讲,英文字母都是用一个字节表示,而汉字使用三个字节。

注意,虽然说utf是为了使用更少的空间而使用的,但那只是相对于unicode编码来说,如果已经知道是汉字,则使用GB2312/GBK无疑是最节省的。不过另一方面,值得说明的是,虽然utf编码对汉字使 用3个字节,但即使对于汉字网页,utf编码也会比unicode编码节省,因为网页中包含了很多的英文字符。

 

感受:

总觉得有很多关于编码的细节没写,不过想了下,具体细节Google一下就可以找到了,就写了下感受较深的东西吧。另外,在我们的应用程序中,我觉得我们能用utf8就尽量使用utf8的编码。也算是为标准化做下贡献吧。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值