关于utf-8(网上查阅)

如果UNICODE字符由2个字节表示,则编码成UTF-8很可能需要3个字节。而如果UNICODE字符由4个字节表示,则编码成UTF-8可能需要6个字节。用4个或6个字节去编码一个UNICODE字符可能太多了,但很少会遇到那样的UNICODE字符。 UTF-8转换表表示如下:


Unicode/UCS-4

bit数

UTF-8

byte数

备注

0000 ~

007F


0~7

0XXX XXXX

1
  

0080 ~

07FF


8~11

110X XXXX

10XX XXXX


2
  

0800 ~

FFFF


12~16

1110XXXX

10XX XXXX

10XX XXXX


3

基本定义范围:0~FFFF

1 0000 ~

1F FFFF


17~21

1111 0XXX

10XX XXXX

10XX XXXX

10XX XXXX


4

Unicode6.1定义范围:0~10 FFFF

20 0000 ~

3FF FFFF


22~26

1111 10XX

10XX XXXX

10XX XXXX

10XX XXXX

10XX XXXX


5

说明:此非unicode编码范围,属于UCS-4 编码

早期的规范UTF-8可以到达6字节序列,可以覆盖到31位元(通用字符集原来的极限)。尽管如此,2003年11月UTF-8 被 RFC 3629 重新规范,只能使用原来Unicode定义的区域, U+0000到U+10FFFF。根据规范,这些字节值将无法出现在合法 UTF-8序列中


400 0000 ~

7FFF FFFF


27~31

1111 110X

10XX XXXX

10XX XXXX

10XX XXXX

10XX XXXX

10XX XXXX


6

实际表示ASCII字符的UNICODE字符,将会编码成1个字节,并且UTF-8表示与ASCII字符表示是一样的。所有其他的UNICODE字符转化成UTF-8将需要至少2个字节。每个字节由一个换码序列开始。第一个字节由唯一的换码序列,由n位连续的1加一位0组成, 首字节连续的1的个数表示字符编码所需的字节数。

Unicode转换为UTF-8时,可以将Unicode二进制从低位往高位取出二进制数字,每次取6位,如上述的二进制就可以分别取出为如下示例所示的格式,前面按格式填补,不足8位用0填补。

注:Unicode转换为UTF-8需要的字节数可以根据这个规则计算:如果Unicode小于0X80(Ascii字符),则转换后为1个字节。否则转换后的字节数为Unicode二进制位数减1再除以5。

时间: 2024-10-23 19:52:31

关于utf-8(网上查阅)的相关文章

java,二分查找法,网上查阅

二分查找又称折半查找,它是一种效率较高的查找方法. 折半查找的算法思想是将数列按有序化(递增或递减)排列,查找过程中采用跳跃式方式查找,即先以有序数列的中点位置为比较对象,如果要找的元素值小于该中点元素,则将待查序列缩小为左半部分,否则为右半部分.通过一次比较,将查找区间缩小一半. 折半查找是一种高效的查找方法.它可以明显减少比较次数,提高查找效率.但是,折半查找的先决条件是查找表中的数据元素必须有序. 折半查找法的优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除

网上查阅的Modbus协议相关

1. 百度知道:超时时间的设置主要取决于总线上反应最慢的节点的反应时间,另外,也要考虑主节点轮询所有的节点需要的时间.假设总线上所有的从节点里面,反应最慢的从节点的反应时间是100ms,超时时间设置在这个基础上加上一个完整数据包收发的长度就差不多了.最长的数据包一般是256字节,在11位9600BPS下这大概需要300ms,那么超时时间比400ms长一些就可以,比如说500ms.当然,再长一点也可以,比如说1秒钟,但太长就会出现另一个问题,总线轮询时间.假设总线上的所有期望的从节点都在线,正常情

java,冒泡排序法,网上查阅

冒泡排序(Bubble Sort)是一种简单的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成.这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端. 冒泡排序算法的运作如下: 比较相邻的元素.如果第一个比第二个大,就交换他们两个. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对.在这一点,最后的元素应该会是最大的数. 针对所有的元素重复以上的步骤,除了最

javascript脚本混淆

脚本病毒是一个一直以来就存在,且长期活跃着的一种与PE病毒完全不同的一类病毒类型,其制作的门槛低.混淆加密方式的千变万化,容易传播.容易躲避检测,不为广大网民熟知等诸多特性,都深深吸引着各色各样的恶意软件制作者 - 小到一个不起眼的lnk快捷方式,大到一个word文档,都是脚本的载体.本文主要以 js脚本为例(特指JScript,下同 ),具体结合实际样本,讲述混淆方式及其混淆类型检测相关知识,文章受限于样本个数及其种类,存在一定的局限性,但大致情况应当不会相差太大.本系列首先会对jscript

从jscript脚本混淆说起

转载:http://www.freebuf.com/column/144897.html 脚本病毒是一个一直以来就存在,且长期活跃着的一种与PE病毒完全不同的一类病毒类型,其制作的门槛低.混淆加密方式的千变万化,容易传播.容易躲避检测,不为广大网民熟知等诸多特性,都深深吸引着各色各样的恶意软件制作者 - 脚本病毒是一个一直以来就存在,且长期活跃着的一种与PE病毒完全不同的一类病毒类型,其制作的门槛低.混淆加密方式的千变万化,容易传播.容易躲避检测,不为广大网民熟知等诸多特性,都深深吸引着各色各样

SQL Server中的索引结构与疑惑

说实话我从没有在实际项目中使用过索引,仅知道索引是一个相当重要的技术点,因此我也看了不少文章知道了索引的区别.分类.优缺点以及如何使用索引.但关于索引它最本质的是什么笔者一直没明白,本文是笔者带着这些问题研究msdn的一点小结以及一大堆疑惑. 1.表结构 当开发者在数据库中创建一个表时,此时默认为这个表创建了一个分区,注意是一个分区.分区是一种数据组织单元,在这个分区中可存在2种结构,分别是堆结构或B树结构(索引结构),也就是说一个分区里要么是堆结构要么是B树结构.为了在某些方面提高性能以及便于

如何有效的遍历django的QuerySet

最近做了一个小的需求,在django模型中通过前台页面的表单的提交(post),后台对post的参数进行解析,通过models模型查询MySQL,将数据结构进行加工,返回到前台页面进行展示.由于对django中QuerySet特性的不熟悉,所以测试过程中发现了很多问题. 开始的阶段没有遇到什么问题,我们举例,在models有一张员工表employee,对应的表结构中,postion列表示员工职位,前台post过来的参数赋给position,加上入职时间.离职时间,查询操作通过models.fil

Visual Studio 2005 学习笔记一 入门

转载自:http://blog.163.com/zm_shichaoren/blog/static/6880234120087211452776/ Visual studio 2005入门记 终于卸掉了Visual C++6.0,换上了全新的Visual C++2005.尽管是简体中文版的,但是功能强大的Visual studio 2005 IDE庞大的开发环境和N多的配置设置,学习起来还不是很简单.C++/CLI通过对ISO C++ 标准的纯粹扩展和新语法,不像传统的MS-DOS 控制台程序,

0909对操作系统的认识

作为一个初学者,我对操作系统这个概念不是很清楚,从网上查阅了一些资料大概了解到什么是操作系统,操作系统是用户和计算机之间的界面,是对所有系统资源进行管理的程序的集合.它管理所有的硬件和软件资源 ,且为用户提供了一个抽象概念上的计算机.我们为什么要学操作系统?原因是在操作系统的帮助下, 我们在使用计算机时可以避免了对计算机系统硬件的直接操作.如果我们是和计算机有关的从业人员,很多时候我们在做一些工程有很多东西都跟操作系统有联系,想要在这个领域能够有一点成绩的话,学好操作系统是必须的,它会使我们事半