ASCII、UTF-8、UTF-16BE、UTF-16LE编码方式的区别

    ASCII字符集:8位表示一个字符,这个都不陌生。

    下面主要讲UTF-8、UTF-16BE、UTF-16LE之间的区别

     这3种编码都属于Unicode编码方式。

  1. UTF-8的特点是对不同范围的字符使用不同长度的编码
    Unicode编码(16进制) UTF-8 字节流(二进制)
    000000 - 00007F0xxxxxxx
    000080 - 0007FF110xxxxx 10xxxxxx
    000800 - 00FFFF1110xxxx 10xxxxxx 10xxxxxx
    010000 - 10FFFF11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

          对于0x00-0x7F之间的字符,UTF-8编码与ASCII编码完全相同。UTF-8编码的最大长度是4个字节。从上表可以看出,4字节模板有21个x,即可以容纳21位二进制数字。

      2.  UTF-16BE  :16位表示一个字符,以大端方式存放

      3.  UTF-16LE  : 16位表示一个字符,以小端方式存放

        大端与小端的区别:以字符 ‘a’ 为例,‘a’ 的编码为[0x61]      

         UTF-8方式下:[0x61]

         UTF-16BE(即大端方式):[0x00    0x61]       大端方式符合人们的习惯

         UTF-16LE(即小端方式):[0x61    0x00]      小端方式利于计算机操作

 

         在UCS 编码中有一个叫做 "Zero Width No-Break Space" ,中文译名作“零宽无间断间隔”的字符,又被称作 BOM

         打开txt文件,在文件开头就有这个字符标记,如下图所示

         文件内容为“abc\n区别"这个字符序列

        

 

       ASCII、UTF-8、UTF-16BE、UTF-16LE四种编码方式分别如下:

      

 

       可以看到      UTF-8编码以 EF BB BF 开头

                           UTF-16BE编码以FE FF  开头

                           UTF-16LE编码以FF FE  开头

                           UTF-8编码方式对不同范围的字符用不同长度的位数编码以及大端与小端的区别。

        

 

 

 

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值