首页 > 自考资讯 > 高考百科

计算机中常用的ASCII码、Unicode、UTF8的区别,ascii码与utf8

小条 2024-09-23

20世纪60年代,美国制定了一套规定英文字母和二进制位之间关系的字符代码,称为ASCII,至今仍在使用。

ASCII(美国信息交换标准代码)是一种基于拉丁字母的计算机编码系统。主要用于显示现代英语,共128个字符。

标准ASCII 码(也称为基本ASCII 码)使用7 个二进制数字(一个二进制数字为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、Unicode)是计算机科学领域的行业标准。它对世界上大多数书写系统进行组织和编码,使计算机能够以更简单的方式显示和处理文本。

Unicode 目前正在不断修订,每个新版本都会添加新字符。最新版本为v12.1,于2019年5月发布。这个版本只增加了一个新角色,就是日本新年组合角色(上灵夏荷)。

Unicode 在计算机软件的国际化和本地化过程中得到高度认可并广泛使用。有许多新技术,例如可扩展标记语言(XML)、Java 编程语言和现代操作系统,都使用Unicode 编码。

Unicode 是一个通用字符集,包含世界各地的大多数字符。也就是说,Unicode可以代表中文。

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

Unicode统一了世界各地字符的编码,但没有指定字符的存储方式。这样做是考虑到以下几点:

Unicode 要求每个符号用3 或4 个字节表示。字符太多,因此只能用有限数量的字节来完整表示它们。

一旦指定,由于所有英文字符都包含在ASCII 码中,可以用一个字节来表示,因此每个英文字符前面必须有2-3 个字节的0,其余字节位置用0 填充。需要。

在这种情况下,文本文件大小会增加2-3倍,这是存储的巨大浪费。

为了解决这个问题,出现了几种称为通用转换格式或Unicode 转换格式(UTF) 的中间格式字符集。常见的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 指定汉字字符“I”的Unicode 编码为“\u6211”,但不同的实现(例如UTF-8 和UTF-16)存储此二进制代码的方式不同。

UTF-8 使用可变长度字节来存储Unicode 字符。例如,ASCII 字符仍然使用1 个字节,重音字符、希腊语或西里尔字符使用2 个字节,常用的汉字使用3 个字符。构造平面字符使用4个字节。

938f72969b474a019c66e0d337649bec~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1727668988&x-signature=%2F%2BReTImVFQ0aEmvcZZjbauezNgI%3D的内容是《深入理解Java核心技术》的摘录。 作者是阿里巴巴技术专家、51CTO专栏作家、CSDN博客专家、掘金特聘作者、《程序员的三门课》共同作者、《Java工程师成神之路》霍利斯作者张宏亮。一系列致力于共享计算机的与编程相关的技术博客文章在网络上的阅读量已达数千万次。

版权声明:本文转载于网络,版权归作者所有。如有侵权,请联系本站编辑删除。

猜你喜欢