小生博客: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