ASCII、UTF - 8、Unicode(统一码)之间得关系

85 阅读3分钟
  1. ASCII(美国信息交换标准代码)

    • 定义和背景

      • ASCII 是一种基于拉丁字母的字符编码标准。它最初是为了使计算机能够处理文本信息而设计的,主要用于表示英语字符和一些基本的控制字符。ASCII 码使用 7 位二进制数来表示一个字符,总共可以表示 128 个不同的字符,包括英文字母(大写和小写)、数字、标点符号和一些控制字符(如换行符、回车符等)。
    • 应用场景和限制

      • 在早期的计算机系统和简单的文本处理场景中,ASCII 码发挥了重要作用。例如,在一些简单的命令行工具或者只涉及英文字符的文本文件中,ASCII 码就足够使用。然而,它的局限性很明显,它无法表示除了英语之外的大多数语言的字符,如中文、阿拉伯语等复杂字符。
  2. UTF - 8(8 位通用字符集转换格式)

    • 定义和原理

      • UTF - 8 是一种可变长度的 Unicode 编码方式。它是为了解决 ASCII 码的局限性而设计的,可以用来表示世界上几乎所有的字符。UTF - 8 的编码规则是根据字符的 Unicode 码点来确定字节序列。对于 ASCII 码中的字符(码点范围在 0 - 127),UTF - 8 使用 1 个字节来表示,和 ASCII 码完全兼容。对于其他字符,根据码点范围使用 2 - 4 个字节来表示。
    • 优势和应用场景

      • 兼容性好:由于和 ASCII 码兼容,在处理包含英文字符和其他语言字符的文本时非常方便。例如,在网页开发中,HTML 文档通常使用 UTF - 8 编码,这样可以同时显示多种语言的内容。
      • 广泛支持:几乎所有的现代软件、操作系统和网络协议都支持 UTF - 8 编码。这使得它成为了数据存储、传输和显示的主流编码方式。比如,在数据库存储文本数据、网络传输 JSON 数据等场景中,UTF - 8 都是首选的编码方式。
  3. Unicode(统一码)

    • 定义和目标

      • Unicode 是一个字符集标准,它为世界上几乎所有的字符都分配了一个唯一的数字码点(code point)。其目的是要涵盖所有语言的字符、符号、表情符号等,实现字符表示的全球统一。例如,汉字 “中” 在 Unicode 中有一个特定的码点(U + 4E2D),这个码点是全球唯一的,用于在不同的系统和软件中准确地表示这个字符。
    • 编码方式和与其他格式的关系

      • Unicode 只是一个字符集,它本身并没有规定字符如何在计算机中存储和传输。为了在计算机中实际使用 Unicode 字符,需要采用一种编码方式,如 UTF - 8、UTF - 16 等。UTF - 8 和 UTF - 16 都是将 Unicode 码点转换为字节序列的具体编码规则,它们的目的是为了让 Unicode 字符能够在计算机系统中高效地存储和传输。

在前端开发中,这些数据格式非常重要。例如,在处理网页内容时:

  • 网页的<meta>标签中通常会指定charset="UTF - 8",这告诉浏览器使用 UTF - 8 编码来解析网页中的文本内容,确保各种语言的字符能够正确显示。
  • 在使用 JavaScript 处理字符串时,JavaScript 内部使用 Unicode 来表示字符,并且在网络请求和数据存储中,经常会涉及到 UTF - 8 编码的转换,比如将用户输入的包含多种语言的文本数据转换为 UTF - 8 格式发送到服务器,或者从服务器接收 UTF - 8 编码的数据并在前端正确显示。