UTF-8是一种变长字节编码方式。对于某一个字符的UTF-8编码,如果只有一个字节则其最高二进制位为0;如果是多字节,其第一个字节从最高位开始,连续的二进制位值为1的个数决定了其编码的位数,其余各字节均以10开头。UTF-8最多可用到6个字节。
如表:

字节数 格式
1字节 0xxxxxxx
2字节 110xxxxx 10xxxxxx
3字节 1110xxxx 10xxxxxx 10xxxxxx
4字节 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
5字节 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
6字节 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx

因此UTF-8中可以用来表示字符编码的实际位数最多有31位,即上表中x所表示的位。除去那些控制位(每字节开头的10等),这些x表示的位与UNICODE编码是一一对应的,位高低顺序也相同。
实际将UNICODE转换为UTF-8编码时应先去除高位0,然后根据所剩编码的位数决定所需最小的UTF-8编码位数。
因此那些基本ASCII字符集中的字符(UNICODE兼容ASCII)只需要一个字节的UTF-8编码(7个二进制位)便可以表示。
对于上面的问题,代码中给出的两个字节是:
十六进制:C0 B1
二进制:11000000 10110001
提取出对应的UNICODE编码:
00000 110001
可以看出此编码并非“标准”的UTF-8编码,因为其第一个字节的“有效编码”全为0,去除高位0后的编码仅有6位。由前面所述,此字符仅用一个字节的UTF-8编码表示就够了。
Java在把字符还原为UTF-8编码时,是按照“标准”的方式处理的,因此我们得到的是仅有1个字节的编码。

【Encoding】UTF-8编码规则相关推荐

  1. Base64的编码规则和C#实现

    Base64是网络上最常见的用于传输8Bit字节码的编码方式之一: Base64的编码规则     Base64编码的思想是是采用64个基本的ASCII码字符对数据进行重新编码.     它将需要编码 ...

  2. ASN.1探索 - 3 编码规则与传输语法(3 - PER)

    转自: http://wmfbravo.blog.163.com/ 感谢: wmfbravo 本章主要介绍BER和PER两种编码规则及其衍生规则. 3.3PER BER编码因其在大小上的开销过大而受人 ...

  3. ASN.1 -- 编码规则

    描述ASN.1编码规则的标准 ITU-T Rec. X.690 | ISO/IEC 8825-1 (BER, CER and DER) ITU-T Rec. X.691 | ISO/IEC 8825- ...

  4. ASCII、Unicode、UCS-2、UTF-8 等字符编码规则的区别与联系

    目录 一.前言 二.补充(bit & Byte) 三.ASCII(美国信息交换标准代码) 四.各国独立的语言编码 五.Unicode(统一码.万国码) 1. Unicode字符集 2. Uni ...

  5. 以太坊RLP编码规则

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 区块链中以太坊RLP编码规则! RLP(Recursive Length Prefix,递归长度前缀)编码算法,是以太坊 ...

  6. 密码生成常见的编码规则

    密码生成常见的编码规则 人们在创建密码的时候,往往有一些常见的习惯,例如在密码后面加上出生年.这样操作的目的是为了提升密码的强度.而渗透测试中常见的密码生成工具为了提高破解几率,就会总结这些习惯,从而 ...

  7. ESP-TOUCH编码规则及解码

    https://blog.csdn.net/flyingcys/article/details/54670688 1. 概述 ESP-TOUCH是Espressif公司自主研究的一键智能配网工具,帮助 ...

  8. 对没有标记为安全的activex控件进行初始化和脚本运行_新的C++安全编码规则出炉...

    新的安全编码规则 在Visual Studio v16.8 Preview 3中,我们添加了一些新的安全编码规则,来帮助开发者更容易找到一些更加容易导致Bug的编码错误,这些错误涵盖了从简单的功能缺失 ...

  9. UTF-8编码规则(转)

    UTF-8是Unicode的一种实现方式,也就是它的字节结构有特殊要求,所以我们说一个汉字的范围是0X4E00到0x9FA5,是指unicode值,至于放在utf-8的编码里去就是由三个字节来组织,所 ...

最新文章

  1. Linux - 添加PATH环境变量
  2. 调制的缺点_电光调制与声光调制原理和应用领域
  3. 大话算法-排序-归并排序
  4. 移动硬盘格式化了的资料找回方法
  5. 利用函数wavread对语音信号进行采样_语音信号处理相关知识
  6. C++三五法则,看看你能不能理解(推荐)
  7. Serverless:云函数 + 小马BI,将报表极速搬上云
  8. 还不知道这 11 个超酷的编程新工具你就 out 了!
  9. 搜索鸿蒙系统,鸿蒙系统更进一步,华为上线搜索服务,HMS有望替代谷歌GMS
  10. android 开发自建wifi热点的默认ip
  11. 利用 ILSpy 查看 C# 代码编译及运行真相
  12. bom头mysql_BOM信息头详解
  13. 如何快速查看颜色的RGB或者十六进制代码(QQ截图,最方便)
  14. wex5 mysql root密码_WeX5基础
  15. 如何申请微信公众号及使用操作方法说明
  16. 如何自学Java 经典
  17. Anchor-based 与 Anchor-free
  18. 用 Delphi 学设计模式 之 简单工厂篇- -
  19. 学编程一年多少中学_我从一年的编码中学到了什么
  20. 3W字经验总结,告诉你如何准备校招!

热门文章

  1. 后台管理系统常用的Font Awesome图标及图标自定义方法
  2. Python代码实现中国日报网双语文章订阅至邮箱
  3. 计算机网络各层协议说明及常见协议
  4. 推荐 8 个优质的公众号
  5. 基址寻址和变址寻址的不同
  6. win10系统批量替换文件名
  7. C++ 之 linux环境下路径操作
  8. ”AE-OT A NEW GENERATIVE MODEL BASED ON EXTENDED“阅读笔记
  9. 利用JSP与JS实现简易购物车
  10. 互联网到底怎么连接的?一张图告诉你