UTF-8 作为 Unicode 的编码方式

什么是 UTF-8

UTF-8 是一种编码,它是可变长度的,使用 8 位代码单元 - 这就是 UTF- 8 的原因。在互联网上,UTF-8 是主导编码(在 2008 年 ASCII 之前,它也可以处理任何 Unicode 代码点)。

UTF-8 和 Unicode 一样吗?

Unicode 不是编码 - 它是编码字符集 - 即一组字符以及字符和表示它们的整数代码点之间的映射。但是很多文档都使用它来引用编码。例如,在 Windows 上,术语 Unicode 用于表示 UTF-16。

UTF-8 只是编码 Unicode 的一种方式,作为编码,它将字节序列转换为字符序列,反之亦然。UTF-16 和 -32 是其他 Unicode 转换格式。

UTF-8 的 BOM

这三个可能都有一个特定的字节顺序标记,这是一个神奇的数字,它向程序发出了几个重要信息(例如,Notepad ++) - 例如,导入的文本流是 Unicode 的事实; 它也有助于检测用于此流的 Unicode 技术。但是,Unicode 联合建议在没有任何签名的情况下存储 UTF-8。某些软件,例如 gcc 编译器会抱怨文件是否包含 UTF-8 签名。另一方面,许多 Windows 程序使用签名。并且尝试检测字节流的编码并不总是有效。

如何检查你的项目是否具有 UTF-8 编码

UTF-8 尚未普及,软件工程师和数据科学家经常面临文本流编码的问题。有时 UTF-8 应该在项目中使用,但是正在使用另一种 ecndoing。有几种工具可以检测文件的编码:

  • 一些 CMD 工具,如 Linux 命令行工具’ file ‘或
    powershell;
  • Python 包 chardet
  • Notepad ++可能是最受欢迎的手动检查工具。