百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 文章教程 > 正文

计算机中常用的ASCII码、Unicode、UTF-8的区别

yund56 2025-02-28 13:40 14 浏览

20世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系做了统一的规定,这套编码被称为 ASCII 码,一直沿用至今。

ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套计算机编码系统。它主要用于显示现代英语,其中共有128个字符。

标准ASCII码也叫作基础ASCII码,使用7位二进制数( 剩下的1位二进制数为0)来表示所有的大写和小写字母、数字0到9、标点符号,以及在美式英语中使用的特殊控制字符。

其中:

0~31及127(共33个)是控制字符或通信专用字符(其余为可显示字符),如控制符:LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BS(退格)、BEL(响铃)等;通信专用字符:SOH(?头)、EOT(?尾)、ACK(确认)等。

ASCII值为8、9、10和13分别转换为退格、制表、换行和回车字符。它们并没有特定的图形显示,但会依不同的应用程序,而对文本显示有不同的影响。

32~126(共95个)是字符(32是空格),其中48~57为0到9的阿拉伯数字。

65~90为26个?写英文字母,97~122为26个?写英文字母,其余为?些标点符号、运算符号等。

由于ASCII码只有128个字符,虽然可以表示所有的英文字符,但世界上还有很多其他的文字,ASCII码是无法表示的,所以需要一种更加全面的字符编码。

在介绍其他的字符编码之前,我们先来说一下一个计算机领域通用的字符集。

Unicode

Unicode(中文:万国码、国际码、统一码、单一码)是计算机科学领域中的一项业界标准。它对世界上大部分的文字系统进行了整理和编码,使得计算机可以用更简单的方式来呈现和处理文字。

Unicode至今仍在不断增修,每个新版本都加入了更多新的字符。目前最新的版本为2019年5月公布的v12.1,这一版本只新增了一个字符,即日本新年号的合字(上令下和)。


Unicode备受认可,并广泛地应用于计算机软件的国际化与本地化过程。有很多新科技,如可扩展置标语言(Extensible Markup Language,简称XML)、Java编程语言及现代的操作系统都采用了Unicode编码。

Unicode是一套通用的字符集,包含世界上的大部分文字,也就是说,Unicode是可以表示中文的。

有了Unicode 为什么还需要UTF-8

Unicode虽然统一了全世界字符的编码,但没有规定如何存储。这么做有如下考虑:

如果Unicode统一规定,那么每个符号要用三个或四个字节表示,因为字符太多,所以只能用这么多字节才能表示完全。

一旦这么规定,那么每个英文字母前都必然有2~3字节是0,因为所有英文字母在ASCII正码中都有,都可以用一个字节表示,剩余字节位置就要补充0。

如果这样,那么文本文件的大小会因此大出二三倍,这对于存储来说是极大的浪费。

为了解决这个问题,就出现了一些中间格式的字符集,它们被称为通用转换格式,即UTF(Unicode Transformation Format)。常见的UTF格式有UTF-7、UTF-7.5、UTF-8、UTF-16和UTF-32。

● UTF-8 使用 1 ~ 4 字节为每个字符编码。

● UTF-16 使用 2 或 4 字节为每个字符编码。

● UTF-32 使用 4 字节为每个字符编码。

所以我们可以说,UTF-8、UTF-16等都是Unicode的一种实现方式。

举个例子,Unicode规定了一个中文字符“我”对应的Unicode编码是“\u6211”,但是,在UTF-8和UTF-16等不同的实现方式下,这个二进制code的存储方式是不一样的。

UTF-8使用可变长度字节来储存 Unicode字符,例如ASCII字母继续使用1字节储存,重音文字、希腊字母或西里尔字母等使用2字节来储存,而常用的汉字就要使用3字节,辅助平面字符则使用4字节。

内容摘自《深入理解Java核心技术》,作者是Hollis,张洪亮,阿里巴巴技术专家,51CTO 专栏作家,CSDN 博客专家,掘金优秀作者,《程序员的三门课》联合作者,《Java工程师成神之路》系列文章作者;热衷于分享计算机编程相关技术,博文全网阅读量数千万。

相关推荐

Frequency函数用法详解—6个示例

Hello,大家好!今天和大家分享Frequency函数的使用方法。Frequency函数可以用于统计数据的频率分布,其语法为frequency(data_array,bins_array)。其中参数...

期刊论文网:查重复值excel的函数

问:如何在excel表格中用公式查找重复值答:打开需要查找重复值的excel表格,找到需要查找的A列。2、将鼠标定位在C1单元格中,在编辑栏中输入公式“=IF(COUNTIF($A:$A,A1)>...

MATCH 函数的几个典型应用

MATCH函数,用于在一行或一列的查询区域中搜索指定内容,然后返回该内容在查询区域中的相对位置。MATCH函数有三个参数,第一个参数是查找对象,第二参数指定查找的范围,第三参数用数字来指定匹配方式...

LOOKUP+INDIRECT组合封神!合并单元格查询从此无压力!

你是不是经常遇到这样的问题?“A列部门是合并单元格,B列是员工姓名,怎么根据姓名快速查部门?”手动翻找?眼睛看花!用VLOOKUP直接查?合并单元格全是坑!今天教你一个神级公式,用LOOKUP+IN...

Match函数的使用方法

一、Match函数。功能:返回符合特定值特定顺序的项在数组中的相对位置。语法结构:=Match(查询值,数据范围,[匹配方式])。其中“匹配方式”有三种,分别为:-1(大于)、0(精准匹配)、1(小于...

两个表格如何匹配出相同的数据!用一个表查询另一个表进行填充!

Excel秘籍大全,前言两个表格匹配出相同的数据,可以通过匹配数据然后复制粘贴即可。当然,也可以直接使用VLOOKUP函数或者INDEX和MATCH函数组合来实现。具体使用哪种方法,可以根据自身需求来...

INDEX+MATCH函数一组合,赛过VLOOKUP函数

提到查询数据,首先想到的就是VLOOKUP函数。但VLOOKUP查询有两个不便之处:1、查找值(第一个参数)始终位于查找区域(第二个参数)的第一列;2、从左向右查找容易,但从右向左查找需要IF或CHO...

Excel模糊查找学会这5个方法,工作简直开了挂

模糊查找向来都是一个比较难的点,即使你对VLOOKUP、LOOKUP函数很熟悉,但有些问题也是要想很久。但当你学会下面这5个方法时,工作简直跟开了挂一样!下图中,我们想要通过E列的姓名在B:C表数据区...

PART19:MATCH+HLOOKUP查找匹配直接套用!

公式解析HLOOKUP:在表格或数值数组的首行查找指定的数值,并由此返回表格或数组当前列中指定行处的数值。(默认情况下,表是升序的)数据表的首行必须为查找值所在行FALSE-精确匹配TRUE-近似匹配...

拒绝加班!快速完成Excel表格核对重复数据!

如何快速完成两个表格或者两组数据对比工作,在日常工作中非常重要,你用的是哪一种方法?平凡的世界平凡的你,努力学习使我们变得不平凡,今天要介绍的知识是excel核对表格差异的相关知识,你准备好学习exc...

如何筛选两个电子表格中重复的数据

#如何筛选两个电子表格中重复的数据#在Excel中筛选两个电子表格中的重复数据,可以通过多种方法实现。以下是几种常用的方法,以及它们的操作步骤:方法一:使用条件格式突出显示重复项打开Excel,并加载...

Excel-函数技巧,COUNTIF+MATCH+INDEX提取不重复物料

要求:用函数求出B列当中,不重复的物料,也就是物料的唯一值。函数公式如下:{=IFERROR(INDEX($B$3:$B$142,MATCH(0,COUNTIF($G$2:G2,$B$3:$B$142...

excel如何快速提取不重复值?提供2个经典用法

当excel有很多数据,而且有很多是重复数据的时候,如何快速提取不重复值就成为了需要解决的难题!如图中案例,A列是学校的列表,由于很多学员都出自同一所大学,所以就会有很多重复的。现在,需要提取不重复的...

如何根据多个条件查找数据,我整理了三种方法

一、案例如下图所示,A1:C8为某小区住户信息表,要求根据楼栋和房号查询住户姓名。二、解决方法方法一、INDEX+MATCH函数在G2单元格输入公式=INDEX($C$2:$C$8,MATCH(1,(...

利用match函数让两个表格排序一致

利用match函数让两个表格排序一致一线老师经常统计学生的情况,有时两个不同的表格由于姓名顺序不一致,手动调整往往需要耗费大量的时间与精力,当我们需要将两个表格的数据需要按照相同的顺序进行对比时,我们...