regex 总览待审核
So · 不是字的图形

不是字的图形:用 \p{So} 形状符号在文本里画图

码点的档案页把字符分成七大类,其中 Symbol(\p{S})下有个 So(Symbol, other / 其他符号)小类。\p{Math} 速查讲的是被数学借用的符号; 这页讲另一大半:纯粹是图形So 字符——画框的 Box Drawing、填色的 Block Elements、 方圆三角的 Geometric Shapes。它们不是「字」:没有读音、不属于任何 Script\p{L}/\p{N} 都不沾。 但在等宽字体里每个恰好占一格,于是能在纯文本里拼出进度条 / 表格框 / TUI / ASCII art——commit log、CLI 输出、聊天框里随处可见。

进度条:实心 / 空心拼出来

最常见的用法:拿一对「实心 / 空心」形状,按比例重复,就是一条纯文本进度条。拖滑块、换字符对看看:

进度 60% 实心 空心
60%

换一对「实心 / 空心」字符

▰▱ 平行四边形:实心 U+25B0 BLACK PARALLELOGRAM、空心 U+25B1 WHITE PARALLELOGRAM, 都在 Geometric Shapes 块、gc 都是 So。它们没有读音、不是字,纯粹是图形——但等宽下每个占一格,▰▰▰▱▱ 就成了进度条。 (★ ☆ 是个例外:它住在 Miscellaneous Symbols 块,不在下面的四个「画图」block 里,但同样 gc=So、同样能拼。)

画框:Box Drawing 把表格 / 树 画进纯文本

另一拨主力是 Box Drawing(128 个 ─ │ ┌ ┐ ╔ ╬…)——粗细、单双线、圆角、丁字接头一应俱全,纯文本里的表格、目录树、TUI 边框就靠它:

全量速查:画图字符工具箱(359 个)

把「用文本画图」的四个核心 block 全量列出来——都是 gc=So(其中 Geometric Shapes 有 10 个同时是 Sm,被数学借走、也在 \p{Math} 速查里)。 按 block 分类、可搜索、可快速切换。搜索支持 码位 hexUnicode 名(如 circletriangleshade)、或直接粘一个字符

三点要记:其一 \p{So} 远不止形状——它共 8617 个,还囊括货币以外的各种符号和绝大多数 emoji(😀 的 gc 就是 So)。 这页只圈出其中「画图用的纯几何形状」四个 block,不是 \p{So} 全集。 其二 为什么能拼图:这些字符的 East_Asian_Width 多为 Narrow / Ambiguous,等宽字体里占一格;而 emoji 是 Wide(两格),拼起来就错位——这也是「形状能画图、emoji 不能」的根。 其三 更进一步:Symbols for Legacy Computing(U+1FB00–1FBFF)是 Unicode 13 新增的「文本画图」块(六分格 / 八分格 / 段码数字 / teletext 马赛克),分辨率比 Block Elements 更细——但字体支持还很零散,这页未纳入。

相关链接