当前位置: 首页 > news >正文

UTF-8 编码

UTF-8 使用一套固定的“模板”,将 Unicode 码点的二进制位填充到模板的 x 的位置上。

Unicode 码点范围(十六进制)Unicode 码点范围(十进制)UTF-8 编码模板(二进制)所需字节数
U+0000 ~ U+007F0 ~ 1270xxxxxxx1字节
U+0080 ~ U+07FF128 ~ 2047110xxxxx 10xxxxxx2字节
U+0800 ~ U+FFFF2048 ~ 655351110xxxx 10xxxxxx 10xxxxxx3字节
U+10000 ~ U+10FFFF65536 ~ 111411111110xxx 10xxxxxx 10xxxxxx 10xxxxxx4字节

编码步骤(以汉字“中”为例):

查找码点:“中”的 Unicode 码点是 U+4E2D。

确定模板:U+4E2D 落在 U+0800 ~ U+FFFF 范围,所以使用 3 字节模板:1110xxxx 10xxxxxx 10xxxxxx。

转换为二进制:将码点 4E2D 转换为二进制(不足16位前面补0):
0100 1110 0010 1101

填充模板:从右向左(从低位到高位),将二进制位依次填充到模板的 x 位置。

模板:1110aaaa 10bbbbbb 10cccccccc (为了方便理解,把x分成了a,b,c组)

码点二进制:0100 111000 101101

填充后:

第一个字节:1110 + 0100 → 11100100 (十六进制 0xE4)

第二个字节:10 + 111000 → 10111000 (十六进制 0xB8)

第三个字节:10 + 101101 → 10101101 (十六进制 0xAD)

得到结果:“中”字的 UTF-8 编码是 0xE4 0xB8 0xAD。

http://www.dtcms.com/a/342699.html

相关文章:

  • 基于IPO智能粒子优化的IIR滤波器参数识别算法matlab仿真
  • 250821-RHEL9.4上Docker及Docker-Compose的离线安装
  • 大数据仓库分层
  • windows 下控制台只能输入或输入输出的问题
  • Java -- 互斥锁--死锁--释放锁
  • 机器学习两大核心算法:集成学习与 K-Means 聚类详解
  • 机器学习经典算法总结:K-Means聚类与集成学习(Bagging, Boosting, Stacking)
  • 机器学习核心算法笔记:集成学习与聚类算法
  • QT6(QSpinBox和QDoubleSpinBox)
  • java项目数据脱敏工具类实现
  • 【离线安装】CentOS Linux 7 上离线部署Oracle 19c(已成功安装2次)
  • 【数据可视化-96】使用 Pyecharts 绘制主题河流图(ThemeRiver):步骤与数据组织形式
  • 如何使用 DeepSeek 助力工作​
  • C# 13 与 .NET 9 跨平台开发实战(第一章:开发环境搭建与.NET概述-下篇)
  • 阿里云的centos8 服务器安装MySQL 8.0
  • 【LeetCode 415】—字符串相加算法详解
  • Java学习历程14——制作一款五子棋游戏(4)
  • R 语言科研配色 --- 第 85 期 (附免费下载的配色绘图PPT)
  • 全屋WiFi强电款WiFi6 86面板一站式测试解决方案
  • leetcode 904 水果成篮
  • 从零开始理解 K 均值聚类:原理、实现与应用
  • Grafana侧重可视化,那多数据源告警呢?
  • Linux的奇妙冒险——进程间通信(管道、SystemV IPC)
  • 【实战记录】麒麟服务器操作系统安装KSC-Defender安全中心全指南
  • EagleTrader交易员采访|交易是一场概率游戏
  • 免费DirectX修复工具?游戏运行异常?【图文详解】dll修复工具?D3DX9_43.dll丢失
  • 【科研绘图系列】R语言绘制序列分析图
  • Rust 的流程控制与函数
  • SQL 中 DISTINCT 的全方位指南:从基础用法到性能优化
  • 【51单片机】【protues仿真】基于51单片机温度烟雾控制系统