汉字笔画数与字符数的奇妙关系 - 一个字竟然有 84 画
将三个"雲"叠在一起的汉字"靐"有 39 画。四个"龍"组成的"𪚥"有 64 画。而日本笔画数最多的汉字"taito"更是达到了惊人的 84 画。然而,在字符计数中,这些汉字全部算作"1 个字符"。1 画的"一"和 84 画的"taito"同样是 1 个字符。本文将深入探讨汉字笔画数与字符计数的关系,涵盖 Unicode 中汉字的收录数量以及异体字的运作机制。
笔画数最多的汉字排行榜
汉字的笔画数理论上没有上限。由于可以将现有汉字组合成新字,笔画数可以无限增加。不过,如果仅限于有实际使用记录的汉字,排行榜如下。
笔画数多的汉字大多具有"理义字"结构,即由相同汉字重复组合而成。"森"(木 × 3 = 12 画)、"轟"(車 × 3 = 21 画)、"靐"(雷 × 3 = 39 画),通过将相同部件叠加 2 至 4 次,笔画数成倍增长。这种结构通常表达"大量的""激烈的"等强调含义,作为造字方法自古就已存在。
| 汉字 | 笔画数 | 读音 | 构成 | Unicode 收录 |
|---|---|---|---|---|
| Taito (雲×3 + 龍×3) | 84 画 | taito、daito、otodo | 3 个雲 + 3 个龍 | 未收录 |
| 𪚥 | 64 画 | tetsu、techi | 龍 × 4 | 已收录 (U+2A6A5) |
| 𱁬 | 57 画 | byan | 陕西省面食名称 | Unicode 13.0 新增 |
| 靐 | 39 画 | hyō | 雷 × 3 | 已收录 (U+9750) |
| 鑱 | 31 画 | san、zan | 金 + 毚 | 已收录 (U+9471) |
| 鬱 | 29 画 | utsu | 常用汉字中笔画最多 | 已收录 (U+9B31) |
84 画的"taito"据说曾作为姓氏使用,但未被 Unicode 收录,也就是说无法在计算机上显示为一个字符。而 64 画的"𪚥"已被 Unicode 收录,只要有对应字体就能在屏幕上显示。
在日本 2,136 个常用汉字中,笔画最多的是"鬱",共 29 画。"鬱"在 2010 年常用汉字表修订时被新增,但因其笔画之多,引发了"这真的算常用吗"的争议。
常用汉字的笔画分布
观察 2,136 个常用汉字的笔画分布,可以看出日本日常使用汉字的"标准复杂度"。
| 笔画区间 | 字数 | 占比 | 代表汉字 |
|---|---|---|---|
| 1-4 画 | 约 160 字 | 7.5% | 一、二、人、大、中、日 |
| 5-8 画 | 约 620 字 | 29% | 生、出、本、学、国、物 |
| 9-12 画 | 约 730 字 | 34% | 食、海、読、意、新、電 |
| 13-16 画 | 约 440 字 | 21% | 話、歴、機、環、職、臨 |
| 17-20 画 | 约 150 字 | 7% | 題、類、議、識、覧、競 |
| 21 画以上 | 约 36 字 | 1.7% | 鑑、驚、鬱、露、魔、籠 |
9-12 画的汉字最多,占总数的约 34%。平均笔画数约为 10.3 画。也就是说,日语文章中使用的汉字平均复杂度约为 10 画。
这一分布反映了人类认知能力与书写能力之间的平衡。笔画太少则难以区分 ("一""二""三"容易混淆),太多则书写困难。9-12 画这个"恰到好处的复杂度",是能够最高效表达最多概念的最佳区间。
笔画再多,字节数也一样 - Unicode 的平等性
这是从字符计数角度来看最重要的一点。无论汉字笔画多少,字符数与字节数的关系都不会改变。
| 汉字 | 笔画数 | Unicode 码位 | UTF-8 字节数 | UTF-16 字节数 |
|---|---|---|---|---|
| 一 | 1 画 | U+4E00 | 3 字节 | 2 字节 |
| 鬱 | 29 画 | U+9B31 | 3 字节 | 2 字节 |
| 靐 | 39 画 | U+9750 | 3 字节 | 2 字节 |
| 𪚥 | 64 画 | U+2A6A5 | 4 字节 | 4 字节 (代理对) |
CJK 统一汉字基本区 (U+4E00-U+9FFF) 中收录的汉字,无论笔画多少,UTF-8 均为 3 字节,UTF-16 均为 2 字节。64 画的"𪚥"收录在扩展 B 区 (U+20000-U+2A6DF),因此 UTF-8 为 4 字节,UTF-16 为代理对 (4 字节)。
也就是说,笔画数不影响字节数。真正起决定作用的是该字符被收录在 Unicode 的哪个区块。基本区汉字为 3 字节,扩展区汉字为 4 字节。这一差异取决于汉字被收录进 Unicode 的时间,而非笔画数。
CJK 统一汉字收录数量的变迁
Unicode 中收录的汉字数量随着版本更新不断增长。正如Unicode 基础知识中所介绍的,Unicode 是统一处理全球文字的标准,而汉字的收录是其中规模最大的工程之一。
| Unicode 版本 | 发布年份 | CJK 统一汉字累计 | 新增数量 |
|---|---|---|---|
| 1.0 | 1991 年 | 20,902 字 | 20,902 字 (初始收录) |
| 3.1 | 2001 年 | 47,035 字 | 扩展 A + B 大幅新增 |
| 5.2 | 2009 年 | 51,110 字 | 扩展 C 新增 |
| 8.0 | 2015 年 | 80,388 字 | 扩展 E 新增 |
| 13.0 | 2020 年 | 92,856 字 | 扩展 G 新增 |
| 15.1 | 2023 年 | 97,680 字 | 扩展 H + I 新增 |
| 16.0 | 2024 年 | 超过 99,000 字 | 扩展 J 新增 |
从 1991 年 Unicode 1.0 的约 2 万字,到 2024 年 Unicode 16.0 的约 9.9 万字,30 多年间增长了约 5 倍。然而,日常使用的汉字在日语中约 3,000 字,在简体中文中约 3,500 字。其余 9 万多字是用于古典文献、方言和历史异体字的稀有汉字。
异体字选择器 (IVS) - 同一个字拥有多种字形的机制
让汉字字符计数更加复杂的是异体字选择器 (IVS: Ideographic Variation Sequence) 的存在。IVS 通过在基础字符后附加异体字选择器 (U+E0100-U+E01EF) 来区分同一汉字的不同字形 (异体字)。
例如,"辺"这个汉字有"邊""邉""辺"等多种字形。为了在户籍中显示准确的字形,就会使用 IVS。据说日本户籍中登记了约 6 万种汉字字形,其中许多无法用标准 Unicode 汉字表示。
使用 IVS 时,看起来是 1 个字符,但数据上消耗了基础字符 + 异体字选择器共 2 个码位。这与表情符号的字符计数中"一个表情符号由多个码位组成"的结构相同。
| 基础字符 | 异体字选择器 | 显示字形 | 码位数 | 用途 |
|---|---|---|---|---|
| 辺 (U+8FBA) | VS17 (U+E0100) | 辺 的异体字 1 | 2 | 户籍姓名 |
| 辺 (U+8FBA) | VS18 (U+E0101) | 辺 的异体字 2 | 2 | 户籍姓名 |
| 葛 (U+845B) | VS17 (U+E0100) | 葛 的异体字 | 2 | 地名 (葛飾区 vs 葛城市) |
| 祇 (U+7947) | VS17 (U+E0100) | 祇 的异体字 | 2 | "祇園"中"祇"的准确字形 |
某些字符计数工具会将带 IVS 的汉字计为"2 个字符"。人眼看到的是 1 个字符,程序却识别为 2 个。这种不一致在姓名输入表单和地址数据库系统中确实引发了问题。
姓名用汉字的限制与字符数
在日本,儿童姓名可使用的汉字受法律限制。户籍法施行规则规定的"人名用汉字"加上常用汉字,共约 2,999 字可用于姓名。
姓名的字符数本身没有法律限制,但实际操作中存在户籍系统的制约。各市区町村的户籍系统能处理的字符范围不同,异体字和旧字体的处理方式因自治体而异。
2024 年引发关注的是个人编号卡 (My Number Card) 的姓名栏字符数限制。由于卡片物理空间的制约,姓名最多只能印刷约 15 个汉字。较长的姓名可能会被缩写,这是"物理字符限制"在现代仍然造成问题的实例。
笔画数与教育 - 学年分配汉字的设计理念
日本小学教授的 1,026 个教育汉字按年级分配。分配不仅考虑笔画数,还考虑使用频率和概念难度,但与笔画数的相关性十分明显。
| 年级 | 分配字数 | 平均笔画数 | 笔画最多的汉字 | 笔画数 |
|---|---|---|---|---|
| 一年级 | 80 字 | 约 4.5 画 | 森 | 12 画 |
| 二年级 | 160 字 | 约 6.8 画 | 曜 | 18 画 |
| 三年级 | 200 字 | 约 8.2 画 | 整 | 16 画 |
| 四年级 | 202 字 | 约 9.5 画 | 競 | 20 画 |
| 五年级 | 193 字 | 约 10.1 画 | 護 | 20 画 |
| 六年级 | 191 字 | 约 11.3 画 | 臓 | 19 画 |
一年级平均笔画约 4.5 画,六年级约 11.3 画,随年级升高而递增。这是根据儿童手部精细动作和认知能力的发展阶段而设计的。不在一年级教"鬱"(29 画) 是基于书写能力发展阶段的合理决策。
笔画数与手写输入 - 数字时代的笔画难题
在智能手机和平板电脑的手写输入中,笔画数直接影响识别准确率。笔画越多的汉字,在小屏幕上准确书写越困难,误识别率越高。一般来说,1-5 画的汉字识别率保持在 95% 以上,但 16-20 画时降至 75-85%,21 画以上可能低于 70%。
能在智能手机上用手写输入准确写出"鬱"(29 画) 的人恐怕不多。实际上,手写识别引擎对高笔画汉字进行了特殊处理。它不仅学习笔画顺序和方向,还学习部首组合模式,即使输入不完整也能推测出正确的汉字。近年来基于深度学习的手写识别引擎即使对复杂汉字也能达到较高识别率,但对于"鬱"这样的汉字,切换到部首检索或拼音输入仍然更为可靠。
这个问题也与表单输入验证设计相关。当姓名输入表单接受手写输入时,考虑高笔画汉字误识别的 UI 设计 (如显示候选列表、提供读音转换选项等) 至关重要。特别是在政务在线申请中,需要输入户籍上准确的字形,手写识别的精度直接影响用户体验。
有趣的是,研究表明笔画越多的汉字,"拼音输入 → 转换"的效率越高于手写。10 画以下的汉字手写可能更快,但超过 15 画后,拼音输入的速度优势就变得压倒性的。这是因为人类手写速度随笔画数成比例下降,而拼音输入的转换速度与笔画数无关。
笔画数与字符计数的实务启示
从汉字笔画数与字符数的关系中得到的实务启示是:"视觉复杂度与数据大小是两回事"。正如全角与半角的区别一样,字符的外观与数据层面的处理并不总是一致的。
设计 Web 表单的字符数限制时,将"1 个汉字 = 1 个字符"是通常做法,但考虑到带 IVS 的汉字和代理对,实现并没有那么简单。特别是在姓名输入表单中,能否正确处理异体字直接关系到用户体验。
84 画的汉字和 1 画的汉字,在字符计数中同样是"1 个字符"。这种平等性正是 Unicode 的设计理念 - 统一处理全球所有文字的基础。超越笔画这一物理复杂度,在数字世界中所有字符被平等对待。这既是 Unicode 的美妙之处,有时也是令人头疼之处。
笔画数在书法和教育领域是重要指标,但在数字字符计数中被完全忽略。1 画的"一"和 29 画的"鬱",在 Slack 消息中都算 1 个字符,在 LINE 消息中也是 1 个字符。这种"笔画的民主化"可以说是数字通信给汉字文化圈带来的重大变革之一。
想更深入了解汉字和字符编码的世界,相关书籍也很有参考价值 (搜索汉字书籍 (Amazon))。