Skip to Content

字符(Char)

char 是一个扩展字形簇(Extended Grapheme Cluster),写在单引号里。一个英文字母是一个 char,一个汉字是一个 char,一个 emoji、一对组合字符组成的字,也各是一个 char。

print('a', '甲'); print('\x41', '\u{1F600}'); print('a' + 1);
a 甲 A 😀 98

字面量与转义

char 字面量支持字符串的整套转义(\n \r \t \0 \ \" \' \xHH \u{HEX}),内容必须是恰好一个字形簇:'\u{1F600}' 是一个 char;'\r\n' 也是一个簇(CR+LF 合成一个簇)。零个簇('')或多个簇('ab')报 MS1008。

码点运算与互转

char 撞上整数运算时,按字符的码点(Code Point)参与计算,结果是整数:'a' 的码点是 97,'a' + 1 得到整数 98,不再是 char。

char 与整数互转走码点中转:int(c) 取簇首码点,char(n) 按码点构造字符(非法码点运行期报 MS6000):

print(int('A'), char(66)); val first: char = "Mush"[0]; print(first);
65 B M

字符串的长度单位就是 char,下标取出的永远是完整的「一个字」("Mush"[0] 得 'M')。

注意

  • 没有归一化:等值比较按码点序列精确对照,预组合形与分解形不等值。实测:'\u{65}\u{301}' == 'é' 是 False(字母 + 组合锐音符 vs 预组合 é);
  • 多码点字形的相关坑集中在 Unicode 与字形簇一页说明。
最后更新于 2026年10月7日