理解计算机中的编码问题

小生博客:http://xsboke.blog.51cto.comwindows

-------谢谢您的参考,若有疑问,欢迎交流

相信计算机系统编码问题,让不少人都头疼,并且你们常常由于编码问题而出现各类各样的烦恼,那么我也同样,在这里,我将本身的理解写出来,你们能够参考参考,若是有异议的地方,你们也能够交流一下.ide

要解决一件事,首先要知道他的此生来世,咱们如今就看看关于计算机编码的此生来世编码

1、编码最初的形态,以及出现的问题和缘由.code

# 最初的形态
由于语言问题,最初每一个几乎每一个国家都有本身的编码好比:
    美国:ASCII 占1个字节,只支持英文
    中国:GB2312 占2个字节,支持6700+汉字
    中国:GBK GB2312的升级版,支持21000+汉字
    日本:Shift-JIS 日本字符
    韩国:ks_c_5601-1987 韩国编码
    泰国:TIS-620 泰国编码

# 产生的问题
这样就产生局限性了,好比你中国的windows系统默认是GBK编码,你在text写了一个"你好",而后把这个text传给了在美国的朋友,
你美国的朋友用美国的计算机打开这个text就会显示乱码.

# 问题产生的缘由
缘由:硬盘里面存储的都是二进制数0101010101111000相似这种,因此你以什么编码写到硬盘的,读的时候就得用什么编码读.

2、解决编码最初产生的问题.orm

这时候就出现了万国码unicode,可是由于unicode涵盖了几乎全球全部的文字和二进制的对应关系,因此使用unicode表示一个字符时,
会占用更多的空间,例如:利用unicode表示"gbk"须要6个字节才能表示,比原来ASCII表示增长了1倍,
为了解决这个问题,出现了Unicode Transformation Format,学术名UTF:
        1.   UTF-8: 使用一、二、三、4个字节表示全部字符;优先使用1个字符、没法知足则使增长一个字节,最多4个         2.   字节。英文占1个字节、欧洲语系占2个、东亚占3个,其它及特殊字符占4个
        3.   UTF-16: 使用二、4个字节表示全部字符;优先使用2个字节,不然使用4个字节表示。
        4.   UTF-32: 使用4个字节表示全部字符;

3、关于转码问题.blog

因为历史缘由,各个国家依然在大量使用本身的编码,这时候由于有了utf,因此咱们能够经过编码转换完成语言的正常显示,
一个对应关系,让你更好的理解编码转换:

1. 让以GBK编码的数据在韩国windows系统中正常显示
         中国编码GBK    ->    decode解码为unicode    ->    encode编码成韩国编码

2. 让以韩国编码的数据在中国windows系统中正常显示
         韩国编码    ->    decode解码为unicode    ->    encode编码成GBK
相关文章
相关标签/搜索