unicode/utf8/utf16/utf32笔记

unicode表示的字符范围是0x0000~0x10FFFF,最多只需要有21位,但是为了字节对齐,所以最多需要32位(4字节)
utf8/utf16/utf32都是表示unicode的一种编码方式。

utf8和utf16是变长编码,utf32不变长。utf-8编码长度为1,2,3或4字节,utf16编码长度为2或4字节,utf32编码长度恒4字节

utf8

单字节编码的情况:
字节最高位以0开头,剩下7位表示字符。字符范围0x00~0x7F (0-127)

双字节编码的情况:
首字节以110开头,第二个字节以10开头,剩下的11位表示字符。字符范围128~2047

三字节编码的情况:
首字节以1110开头,第二第三字节都以10开头,剩下16位表示字符。字符范围2048~65535

四字节编码的情况:
首字节以11110开头,第二第三第四字节都以10开头,剩下的21位表示字符。字符范围65536~2097151

utf16

最少2字节,所以无法兼容ASCILL

思路:unicode码在0-0xFFFF的可以直接用2字节表示够了。但是因为unicode范围是0-0x10FFFF,所以大于0xFFFF的部分再用2字节就不够了(共有0x100000个,需要用20位数字),这部分考虑用4字节,前2字节和后2字节各用10位

双字节编码的情况:
双字节表示的值就等于unicode字符码值,即表示字符0-0xFFFF(0-65535)

四字节编码情况:
高2字节:1101 10xx | xxxx xxxx,编码后值区间就是D800~DBFF
低2字节:1101 11xx | xxxx xxxx,编码后值区间就是DC00~DFFF
字符范围65536-2097151
eg: 四个字节 DB 00 DC 00 就表示unicode值=65536的字符

utf32

简单粗暴,直接用4个字节表示unicode码值。直接存储Unicode编号。无需经过字符编号向字符编码的转换步骤,提高效率,用空间换时间。

utf8对比utf16

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Windows电脑上的多开软件:常见的有哪些?

在使用Windows电脑时,我们经常需要同时打开多个应用程序或者软件,但是Windows操作系统自带的多任务处理功能有时候不能完全满足我们的需求,因此多开软件就显得比较必要了。下面就来介绍一些常见的Windows电脑上的多开软件。 Safeboxie多开器&…

力扣-350.两个数组的交集||

Idea 首先遍历第一个数组,用哈希表存储每个数字及其出现的次数。 然后遍历第二个数组,每出现重复的数字,并判断该数字在哈希表的次数是不是大于0,如果大于则存入答案数组,并将哈希表次数减1,直接遍历结束。…

使用 Telegraf 进行综合监控

Telegraf 可以使用特定于应用程序的插件(例如 NGINX 或 MySQL 的插件)收集许多白盒指标,并且您可以使用 InfluxDB 客户端库来检测您的应用程序,但我们也可以使用 Telegraf 作为综合监控工具来监控我们的状态来自外部的系统。 HTT…

【强化学习】05 —— 基于无模型的强化学习(Prediction)

文章目录 简介蒙特卡洛算法时序差分方法Example1 MC和TD的对比偏差(Bias)/方差(Variance)的权衡Example2 Random WalkExample3 AB 反向传播(backup)Monte-Carlo BackupTemporal-Difference BackupDynamic Programming Backup Boot…

(unordered)map和set封装(底层红黑树)

map和set封装 文章目录 map和set封装设计问题(知其所以然)为什么要对iterator进行封装?为什么要引入Self Ref Ptr这些模板参数?为什么是试图从non_const转变为const,而不是const转为non_const如何解决 为什么说能加con…

【Java 进阶篇】JDBC PreparedStatement 详解

在Java中,与关系型数据库进行交互是非常常见的任务之一。JDBC(Java Database Connectivity)是Java平台的一个标准API,用于连接和操作各种关系型数据库。其中,PreparedStatement 是 JDBC 中一个重要的接口,用…

[QT编程系列-43]: Windows + QT软件内存泄露的检测方法

目录 一、如何查找Windows程序是否有内存泄露 二、如何定位Windows程序内存泄露的原因 二、Windows环境下内存监控工具的使用 2.1 内存监测工具 - Valgrind 2.2.1 Valgrind for Linux 2.2.2 Valgrind for Windows 2.2 内存监测工具 - Dr. Memory 2.2.1 特点 2.2.2 安装…

FileZila 实现wind10与Linux系统文件互传

【FileZila】实现windows与Linux系统文件互传

WebExceptionHandler详解

WebExceptionHandler 是 Spring Framework 中的一个接口,它用于处理 Web 应用程序中的异常。具体来说,WebExceptionHandler 主要用于处理在处理 HTTP 请求时可能发生的异常,并返回适当的响应给客户端。 在 Spring 框架中,WebExce…

2310d模板替换运行时

原文 上周,我开始从我之前的PR中的_d_newarray{i,}T实现开始,把_d_newarraym{i,}T转换为模板.目前,我已实现了新勾挂并更新了降级,但在编译器中遇见了一些测试失败. 修复它们之前,出现了该错误,它是因为我降级到_d_arrayappend{T,cTX}引起的. 我前段时间处理了这些勾挂,并用AS…

GD32F103x IIC通信

1. IIC通信 1.IIC的介绍 IIC总线有两条串行线,其一是时钟线SCK(同步),其二是数据线SDA。只有一条数据线属于半双工。应用中,单片机常常作为主机,外围器件可以挂载多个。(当然主机也可以有多个。…

Java之原子性问题的解决

2. 原子性 2.1 volatile-问题 代码分析 : package com.itheima.myvolatile; ​ public class Demo {public static void main(String[] args) {MyThread1 t1 new MyThread1();t1.setName("小路同学");t1.start(); ​MyThread2 t2 new MyThread2();t2.setName(&q…

想要精通算法和SQL的成长之路 - 验证二叉树的前序序列化

想要精通算法和SQL的成长之路 - 验证二叉树的前序序列化 前言一. 验证二叉树的前序序列化 前言 想要精通算法和SQL的成长之路 - 系列导航 一. 验证二叉树的前序序列化 原题链接 思路(参考负雪明图): 首先我们看题目所给的字符串&#xff…

【Diffusion】DDPM - (2)公式推导 之 前向扩散

1、加噪过程 1、将 图像 x 0 x_0 x0​ 像素值映射到 [-1, 1] 之间 x 255 2 − 1 , w h e r e    x 为图像中的像素值 \quad \frac{x}{255} \times 2-1, \quad where \; x 为图像中的像素值 255x​2−1,wherex为图像中的像素值 \quad 2、生成一张尺寸相同的噪声图片,像…

边缘计算网关

一、项目整体框架图 二、项目整体描述 边缘计算网关项目主要实现了智能家居场景和工业物联网场景下设备的数据采集和控制。 整个项目分为三大层:用户接口层、网关层、设备层。 其中用户层通过QT客户端、WEB界面及阿里云提供数据展示和用户接口。 网关使用虚拟机代替…

Windows电脑上的多开器:是什么、怎么用?

多开器是一种软件,可以在Windows电脑上允许同时打开多个程序或游戏的工具。它通常被用于游戏,可以帮助用户在同一台电脑上同时登录多个游戏账号,或者在同一时间内同时玩多个游戏。 使用多开器的方法很简单。首先,需要在网上下载并…

Django之十二:模板的继承+用户列表

模板的继承 新建layout.html&#xff1a; {% load static %} <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><link rel"stylesheet" href"{% static plugins…

231003-四步MacOS-iPadOS设置无线竖屏随航SideCar

Step 0&#xff1a;MacOS到iPad无线竖屏随航显示&#xff0c;最终效果 Step 1&#xff1a; 下载 Better Display Step 2&#xff1a;在设置中新建虚拟屏幕&#xff0c;创建虚拟屏幕 Step 3&#xff1a;进行如下设置 Step 4&#xff1a;注意事项 ⚠️ 设置后的虚拟屏幕与Sideca…

nodejs+vue晓海网上订餐系统elementui

管理员功能需求 管理员登陆后&#xff0c;主要模块包括首页、个人中心、用户管理、菜单信息管理等功能。 第三章 系统分析 10 3.1需求分析 10 3.2可行性分析 10 3.2.1技术可行性&#xff1a;技术背景 10 3.2.2经济可行性 11 3.2.3操作可行性&#xff1a; 11 3.3性能分析 11 3.4…

IntelliJ IDEA配置Cplex12.6.3详细步骤

Cplex12.6.3版IntelliJ IDEA配置详细步骤 一、Cplex12.6.3版下载地址二、Cplex安装步骤三、IDEA配置CPLEX3.1 添加CPLEX安装目录的cplex.jar包到项目文件中3.2 将CPLEX的x64_win64文件夹添加到IDEA的VM options中 四、检查IDEA中Cplex是否安装成功卸载Cplex 一、Cplex12.6.3版下…