Unicode 和 UTF-8 以及它们之间的关系

通俗易懂的 Unicode 和 UTF-8 解释

Unicode 是什么?

想象一下,我们有一个巨大的图书馆,这个图书馆里有各种各样的书,每本书都有一个唯一的编号。Unicode 就像是这个图书馆的目录系统,它给世界上所有的字符(比如字母、数字、符号、汉字等)一个独一无二的编号(称为“编码点”)。

UTF-8 是什么?

现在,我们需要把这些书从图书馆搬到别的地方,但每本书有大有小。我们需要一种方法来打包这些书,方便运输和存储。这时候,UTF-8 就派上用场了。UTF-8 是一种打包规则,它规定了怎么把这些书(字符)打包成小盒子(字节)。

具体怎么打包?

  • 小书(常见字符):比如英语字母,可以用一个小盒子(1 个字节)装下。
  • 中等书(其他字符):比如一些欧洲语言的字符,需要用两个小盒子(2 个字节)。
  • 大书(汉字):比如中文字符,需要三个小盒子(3 个字节)。
  • 特大书(罕见字符):有些特别少见的字符需要四个小盒子(4 个字节)。

举个例子

  1. 字符 ‘A’

    • Unicode 给它的编号是 U+0041
    • UTF-8 用一个盒子(1 个字节)装下它,编码是 0x41
  2. 字符 ‘你’

    • Unicode 给它的编号是 U+4F60
    • UTF-8 用三个盒子(3 个字节)装下它,编码是 0xE4 0xBD 0xA0

总结

  • Unicode 就像是一个图书馆的目录系统,给每个字符一个唯一编号。
  • UTF-8 是把这些字符打包成字节的小盒子的规则,用不同大小的盒子装不同的字符。

通过这种方式,我们可以把世界上所有的字符(Unicode 和 UTF-8 使得我们能够处理几乎所有语言的字符)都打包并传输到任何地方(无论你在世界的哪个地方,使用什么设备或应用程序,只要它们支持 Unicode 和 UTF-8,就能够正确地识别和显示这些字符),而不会弄混淆。UTF-8 尤其好用,因为它和我们熟悉的英语字符(ASCII)兼容,而且能够灵活处理各种语言的字符。

ps:学过哈夫曼编码都知道前缀码的概念,值得注意的是 UTF-8 也是一种前缀码(Prefix Code)。前缀码是一种编码方式,其中没有任何一个编码单元(码字)是另一个编码单元的前缀。在这种编码方式下,每个字符的编码都是独立的,并且可以通过从左到右解码不需要回溯。在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/767664.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据要素如何转化为生产力?关键在以指标为中心实现数据分析“快全准省”

进入到数字化时代,企业的经营变得越来越精细化、智能化、自动化,其中,数据就变成了关键要素,在企业的业务运营、经营决策、流程改进、创新驱动、资源配置等方面发挥出巨大作用。 数据具体如何转化为生产力,有几个关键…

俄罗斯ozon运费计算工具,跨境电商ozon物流运费计算工具

OZON平台服装类目卖家而言,如何快速、准确地为产品定价,并有效管理运费成本,直接关系到市场竞争力与利润空间。接下来我们看看俄罗斯ozon运费计算工具,跨境电商ozon物流运费计算工具。 萌啦Ozon定价工具:智能模拟&…

OCR text detect

主干网络 VoVNet:实时目标检测的新backbone网络_vovnet pytorch-CSDN博客 DenseNet: arxiv.org/pdf/1608.06993 密集连接: DenseNet 的核心思想是将网络中的每一层与其前面的所有层直接连接。对于一个 L 层的网络,DenseNet 具有…

【深度学习】扫描全能王的AI驱动创新与智能高清滤镜技术解析

目录 引言1、扫描全能王2、智能高清滤镜黑科技2.1、图像视觉矫正2.2、去干扰技术 3、实际应用案例3.1、打印文稿褶皱检测3.2、试卷擦除手写3.3、老旧文件处理3.4、收银小票3.5、从不同角度扫描文档 4、用户体验结论与未来展望 引言 在数字化时代背景下,文档扫描功能…

AI是在帮助开发者还是取代他们

目录 1.概述 1.1.AI助力开发者 1.2.AI对开发者的挑战 2.AI工具现状 2.1. GitHub Copilot 2.2. TabNine 2.3.小结 3.AI对开发者的影响 3.1.对开发者的影响 3.2.开发者需要掌握的新技能 3.3.在AI辅助的环境中保持竞争力的策略 4.AI开发的未来 5.总结 1.概述 生成式…

Git学习(常用的一些命令)

🍎个人博客:个人主页 🏆个人专栏:日常聊聊 ⛳️ 功不唐捐,玉汝于成 目录 前言 正文 配置相关: 创建与克隆仓库: 基本操作: 分支操作: 远程仓库操作&#xff1a…

使用Adobe Acrobat对PDF文档进行数字签名

文章目录 前言一、使用Adobe Acrobat对PDF文档进行数字签名1.使用Adobe Acrobat打开需要进行签名的PDF文档2. 点击【查看更多】3.点击【使用证书】4.点击【数字签名】5.使用鼠标选定一个区域6.选择您需要使用的证书 → 点击【继续】7.点击【签名】8.签名成功 前言 一、使用Ado…

App渗透:BurpSuite插件-Brida apk逆向自动加解密Custom plugins演示

文章目录 前言Eureka 前言 【App渗透:BurpSuite插件-Brida apk逆向自动加解密Custom plugins演示】 很久很久之前,更新过Brida的安装和hook脚本的调试,今晚终于更新了Brida的核心功能,自动加解密。视频里演示的app是我自己开发的&#xff0c…

OpenLCA、GREET、R语言的生命周期评价方法、模型构建

原文链接:OpenLCA、GREET、R语言的生命周期评价方法、模型构建教程https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247608240&idx6&sn1b5758206d500399fe7cc69e800f61fe&chksmfa826657cdf5ef413d31557941a1c5db5cc84bba8d0f408c469e05a4118c…

Ubuntu 22.04 LTS 上安装 MySQL8.0.23(在线安装)

目录 在线安装MySQL 步骤1:更新软件包列表 步骤2:安装MySQL服务器 步骤3:启动MySQL服务 步骤4:检查MySQL状态 步骤5:修改密码、权限 在线安装MySQL 步骤1:更新软件包列表 在进行任何软件安装之前&a…

nginx优化和防盗链

1、隐藏版本号 [roottest1 conf]# vim nginx.conf ​ server_tokens off; ​ 2、防盗链 修改用户和所在组 [roottest1 conf]# vim nginx.conf ​ #user nginx nginx; #表示主进程master会有root创建,子进程会有nginx用户来创建。 3、设置页面的缓存时间 主要是…

力扣404周赛 T1/T2/T3 枚举/动态规划/数组/模拟

博客主页:誓则盟约系列专栏:IT竞赛 专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ 3200.三角形的最大高度【简单】 题目: 给你两个整数 red 和 b…

使用CiteSpace软件对知网文献进行关键词共现/聚类/突现分析

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

Dubbo用法示例

1.version版本控制 比如我们现在有两个服务提供者,他们分别对这个接口的实现方式不一样,那么消费者通过代理对象到底调用哪个实现呢,这就可以通过version版本控制来实现,Reference注解的version和Service注解的version需要配对&am…

利用MATLAB批量读取图像时出现名称排序错乱问题解决方法sort-nat函数

利用MATLAB批量读取图像时出现名称排序错乱问题解决方法sort-nat函数 一、问题描述二、解决方法 欢迎学习交流! 邮箱: z…1…6.com 网站: https://zephyrhours.github.io/ 一、问题描述 使用MATLAB批量读取图像文件,会发现提取出…

华为交换机基本命令配置(创建vlan、配置telnet登录)

<HUAWEI>system-view 进入系统视图 [HUAWEI]sysname SW1 交换机命名为SW1 [SW1]undo info-center enable 关闭消息中心 [SW1]quit 退出当前视图 <SW1>display vlan 查看vlan详情 <SW1>system-view 进入系统视图 [SW1]vlan 5 …

OpenSSL EVP详解

OpenSSL EVP详解 Chapter1 OpenSSL EVP详解一、EVP基本介绍1. EVP 加密和解密2. EVP 签名和验证3. EVP 加解密文件 二、源码结构2.1 全局函数2.2 BIO扩充2.3 摘要算法EVP封装2.4 对称算法EVP封装2.5 非对称算法EVP封装2.6 基于口令的加密 三、开发实例3.1 示例13.2 示例23.3 示…

Maya崩溃闪退常见原因及解决方案

Autodesk Maya 是一款功能强大的 3D 计算机图形程序&#xff0c;被电影、游戏和建筑等各个领域的设计师广泛使用。然而&#xff0c;Maya 就像任何其他软件一样可能会发生崩溃问题。在前文中&#xff0c;小编给大家介绍了3ds Max使用V-Ray渲染时的崩溃闪退解决方案&#xff1a; …

Xilinx FPGA:vivado关于单端ROM的一个只读小实验

一、实验要求 将生成好的voe文件里的数据使用rom读取出来&#xff0c;采用串口工具发送给电脑&#xff08;当按键来临时&#xff09;。 二、程序设计 按键消抖模块&#xff1a; timescale 1ns / 1ps module key_debounce(input sys_clk ,input rst_n…

vcruntime140_1.dll下载——修复vcruntime140_1.dll方法解析

vcruntime140_1.dll 是 Microsoft Visual C Redistributable 中的一个重要动态链接库文件。它在许多应用程序的正常运行中起着关键作用。然而&#xff0c;有时用户可能会遇到 vcruntime140_1.dll 丢失或损坏的情况&#xff0c;导致相关程序无法启动。在这种情况下&#xff0c;下…