我知道在计算机中有四种类型的字符:
- 常规字符(数字或典型语言字母)。
- 控制字符(用于影响机器人或程序如何分析文档的字符),例如行结束(LF)或回车符(CR)。
- 元字符(任何给定的字符代表其自身以外的其他东西)。
我们可以说 BOM 字符也是像 LF 或 CR 这样的控制字符吗?
答案1
我们可以说 BOM 字符也是像 LF 或 CR 这样的控制字符吗?
不,它更像是一个签名:
问:什么是 BOM?
答:字节顺序标记 (BOM) 由数据流开头的字符代码 U+FEFF 组成,可以用作签名定义字节顺序和编码形式,主要用于未标记的纯文本文件。在某些高级协议下,在该协议定义的 Unicode 数据流中,BOM 的使用可能是强制的(或被禁止的)。
来源常见问题解答 - UTF-8、UTF-16、UTF-32 和 BOM
在您的问题中您陈述:
控制字符(用于影响机器人或程序如何分析文档的字符),例如行结束(LF)或回车符(CR)。
以上这种说法是不正确的。
LF
代表 Line喂养不是线路终点。控制字符与文档的分析方式无关:
控制字符或非打印字符是字符集中的代码点(数字),不代表书面符号。它们用作带内信号,以产生除向文本添加符号之外的其他效果。
来源控制字符
答案2
我假设您所说的 BOM 是指 Unicode 字节顺序标记代码点。
您正在发明自己的定义,因此将 BOM 定义为您想要的任何类型。
Unicode 标准的设计者有自己的定义。请参阅Unicode 标准,版本 9.0.0,第 3.4 节字符和编码定义 D10a 将“代码点类型”定义为“标准中的七种基本代码点类别:图形、格式、控制、私有使用、代理、非字符、保留”。这些类型在第 23 章特殊区域和格式字符第23.8节特价商品将 U+FEFF(“字节顺序标记”)定义为具有“特殊”的代码点类型。
因此,Unicode 标准的设计者列出了 7 种代码点类型,而字节顺序标记属于“特殊”类型。您可以随意将其纳入您自己的定义中。