文本编码标识是一种用于标识文本文件所使用的字符编码的特殊标记。常见的文本编码标识有以下几种:
-
BOM(Byte Order Mark):BOM 是在 Unicode 编码中用于标识字节序的特殊字符。在 UTF-16 和 UTF-32 编码中,BOM 用于标识字节顺序(大端或小端)。而在 UTF-8 编码中,BOM 主要用于标识编码方式为 UTF-8。
- UTF-8 BOM:0xEF, 0xBB, 0xBF(十六进制)。
- UTF-16 大端 BOM:0xFE, 0xFF(十六进制)。
- UTF-16 小端 BOM:0xFF, 0xFE(十六进制)。
- UTF-32 大端 BOM:0x00, 0x00, 0xFE, 0xFF(十六进制)。
- UTF-32 小端 BOM:0xFF, 0xFE, 0x00, 0x00(十六进制)。
UTF-8(Unicode Transformation Format-8)是一种可变长度的字符编码,它可以表示 Unicode 字符集中的所有字符。下面是 UTF-8 编码的基本规范:
分为四个区间:
0x0000 0000 至 0x0000 007F:0xxxxxxx
0x0000 0080 至 0x0000 07FF:110xxxxx 10xxxxxx
0x0000 0800 至 0x0000 FFFF:1110xxxx 10xxxxxx 10xxxxxx
0x0001 0000 至 0x0010 FFFF:11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
第一个字节位前面有几个1,表示该字符需要几个字符表示。
例如:110xxxxx 10xxxxxx 前面几位110 表示该字符需要2个字节
例如:1110xxxx 10xxxxxx 10xxxxxx 前面几位1110 表示该字符需要3个字节
同时第一个字节 为标识位 ,后面字节每个字节前2位都是10。