字符编码(三)

上期:

字符编码(二)-CSDN博客

Unicode 字符集

Unicode字符集是一个国际标准,旨在为世界上所有的书写系统和符号提供一个统一的编码方案。它不仅涵盖了现代语言中的字符,还包括了历史上的文字、数学符号、技术符号、表情符号等,几乎覆盖了人类历史上所有已知的字符。通过为每个字符分配一个唯一的编号(称为代码点或码位),Unicode确保了不同平台、程序和语言之间的互操作性。

Unicode官方网址

Unicode – The World Standard for Text and Emoji

代码图

Unicode 16.0 字符代码表

Unicode的发展背景

在Unicode出现之前,计算机行业存在着数百种不同的编码标准,每种编码只能涵盖有限数量的语言字符,并且这些编码之间可能存在冲突。例如,两个不同的编码可能使用相同的数字表示不同的字符,或者用不同的数字表示同一个字符。这种不一致性导致了数据交换时的问题,尤其是在跨国界或跨文化的环境中。

为了克服这些问题,Unicode联盟(The Unicode Consortium)成立,其目标是创建一个包含全球所有字符的单一编码标准。自1991年发布第一个版本以来,Unicode已经经历了多次更新,不断扩展以纳入更多的字符和支持更多的语言。

Unicode的基本概念

  • 抽象字符:Unicode定义了一个抽象字符的概念,即字符本身与其任何特定的视觉表现形式无关。这意味着即使同一个字符在不同的字体中有不同的外观,它们仍然被认为是同一个字符。

  • 代码点:每个抽象字符都被赋予了一个独一无二的标识符——代码点(Code Point)。代码点通常表示为U+后面跟着四位到六位的十六进制数,如大写字母A的代码点是U+0041

  • 平面(Plane)与区块(Block):Unicode将代码点划分为多个平面,其中基本多语言平面(Basic Multilingual Plane, BMP)是最常用的,包含了从U+0000U+FFFF的65,536个位置。除此之外还有16个辅助平面,用于容纳更多的字符。每个平面又被细分为若干个区块,每个区块包含一组相关的字符。

Unicode的编码形式

虽然Unicode定义了一个庞大的字符集,但它并没有规定具体的字节表示方法。为了能够在实际的计算机系统中传输和存储这些字符,Unicode提供了几种不同的编码形式:

  • UTF-8:这是一种变长编码方式,可以使用1到4个字节来表示不同的字符。UTF-8的一个重要特点是它与ASCII兼容,对于ASCII范围内的字符(U+0000U+007F),UTF-8直接使用单字节表示,这使得它成为互联网上传输文本数据的事实标准。

  • UTF-16:该编码方式既可以是定长也可以是变长的。对于BMP内的字符,UTF-16使用两个字节表示;而对于超出BMP的字符,则需要四个字节(一对代理项)。UTF-16主要用于Windows操作系统和其他一些环境。

  • UTF-32:这是一种固定长度的编码方式,每个字符都使用四个字节表示。尽管简单直接,但由于占用空间较大,因此应用不如前两者广泛。

Unicode与其他编码的关系

随着Unicode标准的普及,越来越多的传统编码逐渐被取代。然而,在某些情况下,旧有的编码仍然会被使用,特别是在那些对性能敏感的应用场景下,或是处理历史数据时。例如,GBK是中国大陆地区常用的中文编码之一,它基于GB2312进行了扩展,以支持更多的汉字。尽管如此,Unicode因其广泛的适用性和良好的兼容性,已经成为现代软件开发不可或缺的一部分。

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

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

相关文章

解决集群Elasticsearch 未授权访问漏洞

1、ES集群配置 首先至少是三个节点 2、生成证书(后面要用) cd /home/elasticsearch-7.4.2/bin ./elasticsearch-certutil cert 回车,空密码(可以输入密码),回车 3、将elastic-certificates.p12 复制到三…

mac启ssh服务用于快速文件传输

x.1 在mac上启SSH服务 方法一:图形交互界面启ssh(推荐) 通过sharing - advanced - remote login来启动ssh;(中文版mac应该是 “系统设置 → 通用 → 共享”里打开“远程登录”来启动) 查看自己的用户名和…

Jenkins 任意文件读取(CVE-2024-23897)修复及复现

Jenkins任意文件读取漏洞CVE-2024-23897修复及复现 漏洞详情影响范围漏洞复现修复建议 Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行…

C语言数组查找

数组概念 就是一堆数的一个集合,包含于指针,但是与指针不同的是数组是开辟了空间的 char a[20] //开辟了20个空间 char *p //一个指针,并没有开辟空间 数组名作为指针: 在C语言中,数组名通常可以被看作是一…

HarmonyOS NEXT 实战之元服务:静态案例效果---最近播放音乐

背景: 前几篇学习了元服务,后面几期就让我们开发简单的元服务吧,里面丰富的内容大家自己加,本期案例 仅供参考 先上本期效果图 ,里面图片自行替换 效果图1完整代码案例如下: Index import { authentica…

CVPR2024 | DiffAM:基于扩散模型的对抗性化妆迁移用于面部隐私保护

DiffAM: Diffusion-based Adversarial Makeup Transfer for Facial Privacy Protection 摘要-Abstract引言-Introduction相关工作-Related Works人脸识别中的对抗攻击化妆迁移扩散模型和风格迁移 方法-Method问题表述DiffAM文本引导的化妆去除图像引导的对抗性化妆转移 实验-Ex…

ffmpeg之播放一个yuv视频

播放YUV视频的步骤 初始化SDL库: 目的:确保SDL库正确初始化,以便可以使用其窗口、渲染和事件处理功能。操作:调用 SDL_Init(SDL_INIT_VIDEO) 来初始化SDL的视频子系统。 创建窗口用于显示YUV视频: 目的:…

Java高级工程师1380道面试题(附答案)分享

Java 面试八股文有必要背吗? 我的回答是:很有必要。你可以讨厌这种模式,但你一定要去背,因为不背你就进不了大厂。现如今,Java 面试的本质就是八股文,把八股文面试题背好,面试才有可能表现好。…

打造高效租赁小程序让交易更便捷

内容概要 在如今节奏飞快的商业世界里,租赁小程序如同一只聪明的小狐狸,迅速突围而出,成为商家与消费者之间的桥梁。它不仅简化了交易流程,还在某种程度上将传统租赁模式带入了互联网时代。越来越多的企业意识到,这种…

VS2022 无法使用GitHub账户登录/无法使用copilot 解决方案

无法登录github 账户 错误提示如下: We encountered an issue while adding your GitHub account. Exception Type: GitHubSignInException. Inner Exception: StreamJsonRpc.RemoteInvocationException. Error Message: The input is not a valid Base-64 str…

前端样式练手:阴阳图+时钟的组合

开篇 今天的小作品是突然脑子灵光一闪写出来的&#xff0c;代码不多&#xff0c;就不过多赘述了。 代码实现 <template><div class"clock-container"><!-- 八卦图 --><!-- <div class"bagua"><divv-for"(trigram, ind…

对话 Project Astra 研究主管:打造通用 AI 助理,主动视频交互和全双工对话是未来重点

Project Astra 愿景之一&#xff1a;「系统不仅能在你说话时做出回应&#xff0c;还能在持续的过程中帮助你。」 近期&#xff0c;Google DeepMind 的 YouTube 频道采访了 Google DeepMind 研究主管格雷格韦恩 (Greg Wayne)。 格雷格韦恩的研究工作为 DeepMind 的诸多突破性成…

Maven 项目文档

如何创建 Maven 项目文档。 比如我们在 C:/MVN 目录下&#xff0c;创建了 consumerBanking 项目&#xff0c;Maven 使用下面的命令来快速创建 java 项目&#xff1a; mvn archetype:generate -DgroupIdcom.companyname.bank -DartifactIdconsumerBanking -DarchetypeArtifact…

目标检测——基于yolov8和pyqt的螺栓松动检测系统

目录 1.项目克隆和环境配置1.1 我这里使用的是v8.0.6版本1.2 项目代码结构介绍 2.数据集介绍2.1 数据集采集2.2采集结果介绍 3.模型训练4.pyqt界面设计4.1 界面内容介绍4.2 界面实现 5.操作中的逻辑实现5.1 图片检测5.2 文件夹检测5.3 视频检测和摄像头检测 6. 效果展示 1.项目…

HTTP 协议、AJAX - 异步网络请求及跨域、同源策略

文章目录 一、HTTP 协议简述1. 协议的基本理解2. HTTP 协议的数据格式 二、Express 服务器1. Express 服务器的安装和启动2. Express 服务器的基本使用 三、AJAX 异步网络请求1. ES5 的 XMLHttpRequest 对象实现 AJAX 异步网络请求2. 利用 jQuery 库实现 AJAX 异步网络请求3. E…

使用 OpenCV 绘制线条和矩形

OpenCV 是一个功能强大的计算机视觉库&#xff0c;它不仅提供了丰富的图像处理功能&#xff0c;还支持图像的绘制。绘制简单的几何图形&#xff08;如线条和矩形&#xff09;是 OpenCV 中常见的操作。在本篇文章中&#xff0c;我们将介绍如何使用 OpenCV 在图像上绘制线条和矩形…

【每日学点鸿蒙知识】上架流程、h5返回收拾拦截、两个枚举类型之间转换、hvigorw命令、绘制本地图片

1、HarmonyOS 上架流程&#xff1f; 上架流程&#xff0c;请参考文档&#xff1a;https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/ide-publish-app-V5 上架的一些条件&#xff0c;也请 这边悉知&#xff0c;参考链接&#xff1a;https://developer.huawe…

使用腾讯云CVM搭建 K8s + Docker + Harbor :部署SpringBoot应用与配置指南

在现代云原生应用的开发和部署过程中&#xff0c;容器化技术已经成为主流&#xff0c;而 Kubernetes&#xff08;K8s&#xff09;则是容器编排的绝对领导者。为了高效地管理和分发容器镜像&#xff0c;拥有一个可靠的私有镜像仓库是每个开发者和运维工程师不可或缺的工具。Dock…

第5章 组合计数与离散概率

2024年12月25日 5.1 基本原理 5.1.1 加法原理 5.1.2 乘法原理 5.2 排列与组合 5.2.1 排列 5.2.2 组合 5.3 排列组合生成算法 5.3.1 排列生成算法 5.3.2 组合生成算法 5.4 广义的排列和组合 5.5 二项式系数和组合恒等式 5.5.1 二项式定理 5.5.2 组合恒等式 5.6 鸽笼…

oscp备战系列-Kioptrix2014

文章目录 一、信息收集二、漏洞探测三、漏洞利用四、后渗透 一、信息收集 主机探测 nmap 192.168.30.0/24 -sP端口及版本探测 nmap 192.168.30.199 -sV可以看到开放了80&#xff0c;8080端口&#xff0c;采用apache 2.2.21 mod_ssl2.2.21 openssl0.9.8q WebDAV2 php5.3.8 O…