【Encoding】UTF-8编码规则
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编码规则相关推荐
- Base64的编码规则和C#实现
Base64是网络上最常见的用于传输8Bit字节码的编码方式之一: Base64的编码规则 Base64编码的思想是是采用64个基本的ASCII码字符对数据进行重新编码. 它将需要编码 ...
- ASN.1探索 - 3 编码规则与传输语法(3 - PER)
转自: http://wmfbravo.blog.163.com/ 感谢: wmfbravo 本章主要介绍BER和PER两种编码规则及其衍生规则. 3.3PER BER编码因其在大小上的开销过大而受人 ...
- 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- ...
- ASCII、Unicode、UCS-2、UTF-8 等字符编码规则的区别与联系
目录 一.前言 二.补充(bit & Byte) 三.ASCII(美国信息交换标准代码) 四.各国独立的语言编码 五.Unicode(统一码.万国码) 1. Unicode字符集 2. Uni ...
- 以太坊RLP编码规则
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 区块链中以太坊RLP编码规则! RLP(Recursive Length Prefix,递归长度前缀)编码算法,是以太坊 ...
- 密码生成常见的编码规则
密码生成常见的编码规则 人们在创建密码的时候,往往有一些常见的习惯,例如在密码后面加上出生年.这样操作的目的是为了提升密码的强度.而渗透测试中常见的密码生成工具为了提高破解几率,就会总结这些习惯,从而 ...
- ESP-TOUCH编码规则及解码
https://blog.csdn.net/flyingcys/article/details/54670688 1. 概述 ESP-TOUCH是Espressif公司自主研究的一键智能配网工具,帮助 ...
- 对没有标记为安全的activex控件进行初始化和脚本运行_新的C++安全编码规则出炉...
新的安全编码规则 在Visual Studio v16.8 Preview 3中,我们添加了一些新的安全编码规则,来帮助开发者更容易找到一些更加容易导致Bug的编码错误,这些错误涵盖了从简单的功能缺失 ...
- UTF-8编码规则(转)
UTF-8是Unicode的一种实现方式,也就是它的字节结构有特殊要求,所以我们说一个汉字的范围是0X4E00到0x9FA5,是指unicode值,至于放在utf-8的编码里去就是由三个字节来组织,所 ...
最新文章
- Linux - 添加PATH环境变量
- 调制的缺点_电光调制与声光调制原理和应用领域
- 大话算法-排序-归并排序
- 移动硬盘格式化了的资料找回方法
- 利用函数wavread对语音信号进行采样_语音信号处理相关知识
- C++三五法则,看看你能不能理解(推荐)
- Serverless:云函数 + 小马BI,将报表极速搬上云
- 还不知道这 11 个超酷的编程新工具你就 out 了!
- 搜索鸿蒙系统,鸿蒙系统更进一步,华为上线搜索服务,HMS有望替代谷歌GMS
- android 开发自建wifi热点的默认ip
- 利用 ILSpy 查看 C# 代码编译及运行真相
- bom头mysql_BOM信息头详解
- 如何快速查看颜色的RGB或者十六进制代码(QQ截图,最方便)
- wex5 mysql root密码_WeX5基础
- 如何申请微信公众号及使用操作方法说明
- 如何自学Java 经典
- Anchor-based 与 Anchor-free
- 用 Delphi 学设计模式 之 简单工厂篇- -
- 学编程一年多少中学_我从一年的编码中学到了什么
- 3W字经验总结,告诉你如何准备校招!