编码方式的一些说明

一、几种编码方式说明

1、ISO8859-1

        是国际标准化组织ISO/IEC 8859的第一个8位字符集。它以ASCII为基础,在空置的0xA0-0xFF的范围内,加入96个字母符号,藉以供使用附加符号拉丁字母语言使用。属于单字节编码,应用于英文。

2、ASCII

    单字节编码,只用了7位,最高位为0,能表示128个字符,主要用于英文。

3、Unicode

      为了将所有语言统一到一套编码之中,Unicode(万国码、国际码、統一码、单一码)应运而生。Unicode最常用的是用两个字节表示一个字符(如果要用到非常偏僻的字符,就需要4个字节,属于定长编码)。对于Unicode,需要注意的是,Unicode 只是一个符号集,它只规定了符号的二进制代码,却没有规定这个二进制代码应该如何存储。因此,就存在2个问题:

一、计算机怎么知道二个字节为一个字符,如何识别二个字节为什么一个字符?

二、针对英文字符,如果使用大于1个字节来表示,那么低位的前面几个字节全是0。很奢侈浪费空间,因为现在计算机大部分内容还是英文。

4、UTF

      UTF(Unicode Transformation Format), Unicode字符集的编码方式,主要有UTF-8,UTF-16,UTF-32等。

      UTF-8是变长编码,使用1~4个字节来表示一个字符,UTF-8的特点是对不同范围的字符使用不同长度的编码。

      UTF-16是以二字节或四字节表示一个字符的变长编码。Unicode在BMP平面的字符(U+0000~U+FFFF)用二字节来编码,其余字符用四字节来编码。

      UTF-32是以4个字节表示一个字符的定长编码方式。

5、GBK/GB2312

       采用双字节编码,专门用于汉字,而对于英文字母和iso8859-1一致(兼容iso8859-1编码)。其中gbk编码能够用来同时表示繁体字和简体字,而gb2312只能表示简体字(big5可以用来表示繁体字),gbk是兼容gb2312编码的。注意GB2312/GBK不是定长编码。

6、UCS

     通用字符集(Universal Character Set, UCS)是由ISO制定的ISO 10646(或称ISO/IEC 10646)标准所定义的标准字符集。UCS-2用两个字节编码,UCS-4用4个字节编码。

二、Unicode和UTF-8、UTF-16、UTF-32之间的关系

1、字符集和字符编码

字符集就是我们用十进制来表示世界上各种字符

字符编码就是通将十进制转换为计算机识别的二进制编码的规则

2、Unicode就是一套字符集,该套字符集将世界上大多数语言的文字对对应成10进制数了。为了克服Unicode的缺点,不能直接使用Unicode的方式编码存储到计算机之中。因此,需要使用UTF-8、UTF-16、UTF-32编码方式将Unicode字符集存储到计算机之中。目前,UTF-8 就是在互联网上使用最广的一种 Unicode 的实现方式。

==》主要参考以下文章:

https://blog.csdn.net/kdc18333608478/article/details/70214493

http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html

https://juejin.im/entry/59434c3161ff4b006cd280a1

https://www.zhihu.com/question/23374078

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值