编码简要概述(ANSI,Unicode,Utf-8,UCS-2,GB2312,GBK...)

关于编码问题,内容太多,隔一段时间就会遗忘!

因此本文不涉及很具体的编码知识,主要进行归纳,以便从概念上进行区间:

请不要对时间顺序深究


1、混战时代
         ANSI(美国国家标准学会),规定1字节的 0~127 区间,只能我用, 超出部分 0x80~0xFFFF,你们自己看着办。于是各国各式各样的编码来了!

遵照ANSI规定:
     1、美国:ASCII码(美国信息交换标准编码), 1字节 ,  0~127表示字符和控制码, 128~255, 没有规范
     2、中国大陆:

                GB2312(国标, 简体中文),英文1个字节, 汉字2个字节,共计约7000多字符。

                不够呀,繁体、古文咋弄?以 GB2312为基础进充,有了GBK(国标扩展)简繁二合一,包括20000多字符。

                还不够,少数民族 呢?再扩充,GB18030诞生,7万多字符,2字节已经不够用了,要4字节;
     3、中国台湾:Big5(繁体中文)。
     4、欧洲: ISO-Latin-1, ISO-Latin-9
     5、日本:Shift_JIS
     6、韩国:Euc-kr
                    ... ...

你有我有,全都有了,结果世界乱套了!同一个号码,在不同的国家代表完全不一样的意思!

(可以看出,遵照ANSI规定,各国的ANSI编码是不同的!我国是GBxxx)


2、一统时代(貌似)
        UNICODE字符集,对世界上绝大部分的文字的进行整理和统一规定,字符分为17面,每平面拥有65536个码位,共计百万个,用的最多的是0面。字符集有了,但是如何存储、传输、编码没规定,乱象再生!各种编码格式来了!

按照UNICODE规定:
      1、UCS-2: 定长编码,2字节(16bit)为一个单位,每2个字节表示一个字符,最大表示65536个!不兼容ASCII,程                                    序处理简单,但英文存储浪费,而且还不够用!
      2、UTF-8 :变长编码,1字节(8bit)为一个单位,每1个或者多个字节表示一个字符, 英文存储也节省了,还可以无限                                  扩展,于是在互联网传输中广泛使用,程序处理就稍微复杂一些了!
      3、 UTF-16:变长编码,2字节(16bit) 为一个单位,每2个字节或者4个表示一个字符。兼容UCS-2,还可以表示足够多的                                     字 符。因为大多文字都可以用两个字节编码,相比Utf-8处理要简单些!
      4、UCS-4 / UTF-32:定长编码,4字节(32bit)为一个单位,每4字节表示一个字符。够大,程序处理简单,浪费严重!

     关于字节存储顺序BOM(Byte Order Mark):

         对于UCS-2,UTF-16,UTF-32,如果带BOM,以0xFFEF(小端)和0xEFFF(大端)开头为标志。

          UTF-8(BOM) :3字节:EE BB EF 开头

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值