ASCII、Unicode和UTF-8编码的区别

2023-11-11

归纳:

编码 大小 支持语言
ASCII 1个字节 英文
Unicode 2个字节(生僻字4个) 所有语言
UTF-8 1-6个字节,英文字母1个字节,汉字3个字节,生僻字4-6个字节 所有语言

具体解释

最早只有127个字母被编码到计算机里,也就是大小写英文字母、数字和一些符号,这个编码表被称为ASCII编码,比如大写字母A的编码是65,小写字母z的编码是122。

但是要处理中文显然一个字节是不够的,至少需要两个字节,而且还不能和ASCII编码冲突,所以,中国制定了GB2312编码,用来把中文编进去。

你可以想得到的是,全世界有上百种语言,日本把日文编到Shift_JIS里,韩国把韩文编到Euc-kr里,各国有各国的标准,就会不可避免地出现冲突,结果就是,在多语言混合的文本中,显示出来会有乱码。

因此,Unicode应运而生。Unicode把所有语言都统一到一套编码里,这样就不会再有乱码问题了。

Unicode标准也在不断发展,但最常用的是用两个字节表示一个字符(如果要用到非常偏僻的字符,就需要4个字节)。现代操作系统和大多数编程语言都直接支持Unicode。

新的问题又出现了:如果统一成Unicode编码,乱码问题从此消失了。但是,如果你写的文本基本上全部是英文的话,用Unicode编码比ASCII编码需要多一倍的存储空间,在存储和传输上就十分不划算。

所以,本着节约的精神,又出现了把Unicode编码转化为“可变长编码”的UTF-8编码。UTF-8编码把一个Unicode字符根据不同的数字大小编码成1-6个字节,常用的英文字母被编码成1个字节,汉字通常是3个字节,只有很生僻的字符才会被编码成4-6个字节。如果你要传输的文本包含大量英文字符,用UTF-8编码就能节省空间。

UTF-8编码有一个额外的好处,就是ASCII编码实际上可以被看成是UTF-8编码的一部分,所以,大量只支持ASCII编码的历史遗留软件可以在UTF-8编码下继续工作。

 

https://blog.csdn.net/u012223913/article/details/51772610

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ASCII、Unicode和UTF-8编码的区别 的相关文章

随机推荐

  • ElasticSearch 绑定IP地址

    https blog csdn net yelllowcong article details 78740237
  • Dx11--用dx11绘制棱台,并用键盘和鼠标进行旋转缩放操作

    目录 一 索引缓冲区 前言 创建缓冲区 缓冲区的描述 二 常量缓冲区 前言 准备工作 正式初始化 画面更新及其效果 画面更新 效果 三 键盘和鼠标的创建 1 鼠标的创建 2 键盘的创建 3 更新画面 4 消息回调函数 处理键盘鼠标信息 效果
  • Python协程介绍【赠书活动|第五期《Python编程入门与实战》】

    文章目录 一 相关概念 1 协程 2 子程序 3 区别 4 协程的优势 二 示例 赠书活动 一 相关概念 1 协程 协程 又称微线程 纤程 英文名Coroutine 协程的概念很早就提出来了 但直到最近几年才在某些语言 如Lua 中得到广泛
  • LeetCode : Search for a Range

    Given a sorted array of integers find the starting and ending position of a given target value Your algorithm s runtime
  • Centos7安装jdk1.8

    Centos7安装jdk1 8 两种安装方式 1 检查本机是否安装了jdk 安装了就不用安装了 命令如下 root localhost java version bash java 未找到命令 root localhost 注意 说明未安装
  • 视频解码学习备忘

    媒体文件知识 日常都是播放器直接播 其实这里面还有不少内容的 首先是视频容器 就是所谓的 mp4 mkv 这类文件 其目的主要就是用来存放音频视频字幕等内容 所以叫做容器 这些都有一定规范 比如mp4 叫ISO 14496 12 也即是mp
  • 7-1 图的先深搜索+7-2 图的先广搜索

    由于本人用指针 链表实现数据结构算法时经常有使用堆叠字节的警告以及栈溢出报错 于是就都用数组或者C stl模拟了 输出无向图的给定起点的先广序列 输入格式 输入第一行给出三个正整数 分别表示无向图的节点数N 1
  • C语言-按照单词反转字符串(完整代码)

    编程实现以单词 为单位的字符串逆序 例如 HELLO WORLD WORLD HELLO 目录 实现逻辑 实现代码如下 完整备注 执行结果如下 实现逻辑 当前的实现逻辑 是通过两个指针变量 一个指针
  • 第十二讲:强化学习(Reinforcement Learning)和控制(Control)

    这一章我们就要学习强化学习 reinforcement learning 和适应性控制 adaptive control 了 在监督学习 supervised learning 中 我们已经见过的一些算法 输出的标签类 y y y 都是在训
  • 【Linux】对Linux操作系统中进程的理解

    需要云服务器等云产品来学习Linux的同学可以移步 gt 腾讯云 lt gt 阿里云 lt gt 华为云 lt 官网 轻量型云服务器低至112元 年 新用户首次下单享超低折扣 目录 一 冯 诺依曼体系结构 硬件方面 举个例子加深理解 二 操
  • 如何使定时器1ms进入中断一次?

    STM32F103中APB1最大时钟频率72Mhz APB2最大时钟频率36Mhz 所以 1 把定时器设置自动重装载寄存器 ARR 的值为 1000 2 设置时钟预分频器为 71 3 则驱动计数器的时钟 CK CNT CK INT 71 1
  • SpringBoot实现RESTful服务接口

    在实际使用SpringBoot开发项目的过程中 后端服务经常会遇到跨模块访问的需求 这就需要我们的服务接口有同一的开发规范 这样在跨模块调用时才能更方便 高效 而Spring Boot也为我们创建Web服务提供了非常强大的组件化支持 简单而
  • 华为OD机试 - 拔河比赛(Python)

    题目描述 公司最近准备进行拔河比赛 需要在全部员工中进行挑选 选拔的规则如下 按照身高优先 体重次优先的方式准备比赛阵容 规定参赛的队伍派出10名选手 请实现一个选拔队员的小程序 输入为一个数组 记录了部门人员的身高 体重信息 如 身高 体
  • Javaweb

    1 Cookie对象 cookie是一种会话技术 它用于将会话过程中的数据保存到用户的浏览器中 从而使浏览器和服务器可以更好的地进行数据交互 实现获取Cookie信息并将当前时间发送给客户端 代码如下 protected void doGe
  • MultipartFile文件上传报错

    MultipartFile文件上传报错 Postman上传文件访问接口 直接报错了 报错如下 Failed to parse multipart servlet request nested exception is java io IOE
  • SonarQube SonarLint 安装使用教程

    目录 SonarQube 概念 什么是 SonarQube SonarQube 架构 SonaQuge 是如何工作的 现有问题 如何判断代码好坏 为什么要使用 SonarQube 代码可靠性 应用安全 技术债务 SonarQube 安装及配
  • sigmoid和softmax总结

    sigmoid函数 也叫逻辑斯谛函数 引用wiki百科的定义 A logistic function or logistic curve is a common S shape sigmoid curve 其实逻辑斯谛函数也就是经常说的si
  • Spring三级缓存解决循环依赖

    有两个Bean对象 A对象中有一个属性的B对象 B对象中有一个属性的A对象 他们都需要依赖注入 但是map单例池中都没有这个对象 正常情况下在进行注入时 如果map单例池中没有需要的Bean对象B就会去创建这个Bean对象B 但如果需要创建
  • onnxruntime和pytorch时间对比

    https github com microsoft onnxruntime issues 2404 https github com microsoft onnxruntime issues 1621 https github com m
  • ASCII、Unicode和UTF-8编码的区别

    归纳 编码 大小 支持语言 ASCII 1个字节 英文 Unicode 2个字节 生僻字4个 所有语言 UTF 8 1 6个字节 英文字母1个字节 汉字3个字节 生僻字4 6个字节 所有语言 具体解释 最早只有127个字母被编码到计算机里