科百科
当前位置: 首页 科技资讯

unicode可以解码utf-16吗(unicode字符集和utf-8编码)

时间:2023-06-07 作者: 小编 阅读量: 1 栏目名: 科技资讯

后续字节使用10作为前缀标志位,标志这个字节不能作为一个开始字节,也是为了解决和开始字节的前缀标志位冲突,实际上是为了解码服务这样做可以把开始字节和非开始的字节区分开,可以对utf-8编码进行校验,如果一个开始字节后的后续字节数和开始字节前缀标志位中的字节数不符合,那么校验失败utf编码和解码图示:utf-8编码/解码

字符集和编码

我们在实际开发中, 经常需要处理文本信息, 组成文本的单元我们称之为字符 计算机只能处理0和1, 不能直接处理这些字符, 比如说对字符的读取和存储

为了解决这个问题, 我们可以建立一个数字与字符的关联关系, 比如说使用97 -> a, 98 -> b, 99 -> c..依据数字可以查询对应字符, 依据字符可以查询对应数字

这样我们需要处理字符的时候, 就可以先查询这个映射, 找到字符对应的数字, 然后把这个数字转换成二进制存储即可, 读取的时候亦然

  • 字符集: 为每一个字符分配一个唯一的数字, 这个数字可以称之为码点
  • 编码规则: 把码点转换为字节序列的规则
新的问题

计算机最早是美国发明的, 所以一开始只需要处理英文的字符就可以了, 也就是ascii字符集. 后来计算机越来越普及, 更多的国家开始使用计算机, 这个时候就需要处理更多的字符, 比如说中文字符, 日韩字符...由于ascii字符集不支持, 所以各个国家也产生了许多支持更多字符的字符集, 比如说支持简体中文的gb2312字符集, 支持简体中文、繁体中文和日韩字符的gbk字符集...

多个字符集的问题:

  • 维护起来十分复杂, 对于相同的字符, 多个字符集可能重复维护
  • 不同字符集对同一个字符分配的码点可能不一样, 这样就导致编码和解码必须使用相同的字符集, 不然可能会出现乱码
unicode字符集和utf-8编码unicode字符集

为了解决上述多个字符集的问题, 我们需要一个维护所有字符, 统一的字符集, 我们称之为unicode字符集. uniocde14.0版本, 一共收录了144697个字符

unicode字符集

编码规则

unicode解决了字符集统一的问题, 接下来还需要制定相应的编码规则

定长编码

最简单粗暴的编码规则, 所有码点都使用相同长度的字节来表示, 比如说现在已知的字符数量大概14W多, 可以使用三个字节来表示(0 ~ 16777216)

优点: 编码简单

缺点: 不够节约空间, 只需要使用一个字节和两个字节表示的字符也使用了三个字节来表示

变长编码

针对不同范围的码点, 使用不同长度的字节序列来表示 utf-8就是一种变长编码

utf-8编码规则

字节

格式

实际编码位

码点范围

1字节

0xxxxxxx

7

0 ~ 127

2字节

110xxxxx 10xxxxxx

11

128 ~ 2047

3字节

1110xxxx 10xxxxxx 10xxxxxx

16

2048 ~ 65535

4字节

11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

21

65536 ~ 2097151

utf-8编码规则, 是一种前缀编码规则, 每一个字节都是由标志位实际编码位组成, 第一个开始字节的高位1的个数表示这个编码占用了几个字节, 只占用一个字节的时候比较特殊, 使用0作为高位标志位

为什么占用多个字节时, 除了第一个开始字节外, 后续的字节也需要10作为前缀标志位?

  1. 后续字节使用10作为前缀标志位, 标志这个字节不能作为一个开始字节, 也是为了解决和开始字节的前缀标志位冲突, 实际上是为了解码服务
  2. 这样做可以把开始字节和非开始的字节区分开, 可以对utf-8编码进行校验, 如果一个开始字节后的后续字节数和开始字节前缀标志位中的字节数不符合, 那么校验失败

utf编码和解码图示:

utf-8编码/解码

    推荐阅读
  • 2022年属虎人的运程(2022年属虎人的运程如何)

    2022年属虎人的运程?下面希望有你要的答案,我们一起来看看吧!属虎人的能力越强在这一年里就越要小心谨慎些,低估别人的实力容易吃亏,高估了自己的实力会出糗,稳定自己的情绪,保持平常心的状态去面对生活里发生的一切,这样才能够减少意外和麻烦的出现,也可以避开小人的纠缠。

  • 猕猴桃的营养价值(猕猴桃的营养价值是什么)

    猕猴桃的营养价值它含有亮氨酸、苯丙氨酸、异亮氨酸、酪氨酸、丙氨酸等十多种氨基酸,以及丰富的矿物质,包括丰富的钙、磷、铁,还含有胡萝卜素和多种维生素。猕猴桃对保持人体健康,防病治病具有重要的作用。多食用猕猴桃可以预防老年骨质疏松,抑制胆固醇的沉积,从而防治动脉硬化,还可改善心肌功能,防治心脏病等,也能对抗癌起到一点儿作用。多食用猕猴桃,还能阻止体内产生过多的过氧化物,防止老年斑的形成,延缓人体衰老。

  • 守护雷霆劫怎么玩(教你玩守护雷霆劫的简单方法)

    守护雷霆劫怎么玩阵容构成。2秘术,3召唤,2守护,4雷霆.看具体情况,若没有4雷霆,3雷霆也是可以的。掘墓,劫,奥恩,索拉卡,安妮,娜美,宝石,雷霆拉克丝。若没有雷霆拉克丝,可用狗熊换成3雷霆也很猛。前期需平稳过度,可用极地掠食或者森林德鲁伊等强势阵容,中期较为乏力,存钱利息升人口或变换中期强势阵容。

  • 气溶胶传播后能开窗吗(什么是气溶胶传播)

    通过流行病学调查显示,病例多可以追踪到与确诊的病例有过近距离密切接触的情况,这符合飞沫传播和接触传播的特征。但目前尚没有证据显示新型冠状病毒通过气溶胶传播。有的网友还问,空气中是否有新型冠状病毒?从这个角度讲,在日常通风环境下,空气中一般不会有新型冠状病毒。对于防护措施,一般的工作生活条件下,采取正确佩戴口罩这种飞沫传播防护措施,足以保护普通公众不被感染。

  • 燕窝简介(燕窝相关简介)

    燕窝简介燕窝是雨燕科几种金丝燕分泌的唾液及其绒羽混合粘结所筑成的巢穴。主产于马来西亚、印度尼西亚、泰国和缅甸等东南亚国家及我国的福建和广东沿海地带。燕窝中的主要营养成分是蛋白质,其中有1种必需氨基酸(赖氨酸),3种条件性必需氨基酸,而人体需要的必需氨基酸有8种,条件性必需氨基酸有13种。

  • 蛋奶球的做法(制作蛋奶球的方法详解)

    下面希望有你要的答案,我们一起来看看吧!蛋奶球的做法将除蔓越莓干以外的材料混合均匀放微波炉里加热2分钟,再加热一会儿。弄碎后再碾的细腻一点,取适量放在保鲜膜上。再放上一块,收起保鲜膜,手掐住封口。放在椰蓉里打个滚。做好了,香甜可口。

  • 一般高血压患者可以喝什么茶(高血压患者能喝茶吗)

    广州中医药大学第一附属医院心血管内科主任吴辉教授指出,茶叶中含有茶多酚,具有增强血管弹性的作用。它能降低血液中胆固醇、甘油三酯及低密度脂蛋白,还能降低胆固醇与磷脂的比例,从而达到了预防及治疗动脉硬化的目的。吴辉教授认为,绿茶和菊花茶同时饮用也可以起到辅助降压的效果。这样也可以起到降低血压,预防动脉硬化的作用。

  • 自然堂产品有假的吗(自然堂发布澄清声明)

    通告也指出,经生产(代理)企业所在地食品药品监管部门现场核查,伽蓝集团否认该产品为企业所生产(代理)。同时,也表明伽蓝集团将持续配合相关监管和执法部门加大打假力度,全力维护消费者合法权益。一直以来,伽蓝集团始终严格把控产品质量,遵守国家相关法律法规,目前官方授权销售的所有产品,消费者均可以放心使用。

  • 突围付长明和皮丹签合同(突围皮丹结局取代齐本安)

    因为这样,皮丹不能担负责任,别人行贿时,他会觉得这种事就是理所当然。这很大程度上,是因为程端阳的纵容。多年后,煤炭,矿业资源过剩,京州能源成为公司的负增长企业。齐本安在京州的一番作为,惹怒了很多人,更重要的是惹怒了林满江,动了林满江的蛋糕,让林满江对他产生严重的不满。

  • 包价旅游和旅游包价的区别(看完这篇你就明白了)

    旅游包价在全包价基础上,扣除午、晚餐费用的包价形式,其目的在于降低产品的直观价格,提高产品的竞争能力,同时也可更好地满足游客在用餐方面的要求,两者区别一目了然。包价旅游是指旅游者在旅游活动中开始前即将全部或部分旅游费用预付给旅行社,由旅行社根据同旅游者签订的合同,相应地为旅游者安排旅游途中的吃、住、行、游、购、娱等活动。