游戏文化浓度也许很高的微型博客,还有审查观察和浅显的科普杂谈。每日 7:30 准时更新。明明很向往自由,却有着严格约束,和奇怪规则的频道。

由 gledos 创作的内容,如果没有另外声明,均为 CC-BY 4.0 许可协议。

gledos 无法保证内容正确,但会一直尝试追逐正确。

管理员: @gledos_green
Whitespace 编程语言

愚人节总是有许多有趣的玩笑,2003年 的愚人节,有人发布了 Whitespace 编程语言,即空格编程语言,这种语言只使用空格和制表符(还有换行符),那么也就没有注释语法,因为其他字符都会被解释器忽略。

不过这种编程语言显然有一个问题……就是没法直接看到这些表示代码的空白符号。开发者选择的是就像观察细胞一样 ——「染色」,只要在文本编辑器中将特定的字符用颜色高亮显示就好。

不过也可以使用昨天提到的替代符号,用 · 表示空格, 表示制表符,虽然制表符按键的符号是 ↹,不过许多代码编辑器会使用箭头来表示。封面图是 Notepad++ 开启了「显示空格与制表符」的选项。

#字符
表示空格的符号

空格通常是指 U+0020 这个字符,可以试相邻的字符产生间距,也可以在文字的末尾添加空格,虽然通常没有太大的作用,不过在 Markdown 文件的行尾添加两个空格就是换行的标记。

在一些涉及代码、标记语言的示例中,可能需要显示空格,但这就麻烦了,因为空格是不可见的,所以就需要需要使用替代字符/图像来表示空格。

早期 Android 手机的输入法会使用 ␣ 或者 ⎵ 这样的替代字符表示空格键,但这种符号不适合作为文本显示,因为多个这种符号难以计数。

一些 IDE 会用淡色的圆点显示空格字符,这样既不会太碍眼,又能清晰的看到以及计数,CommonMark 的规范文件就使用了这种表现方式。

相关的微型博客:表示无的通用图像

🔗参考资料 #字符
无宽度字符的意义

宽⁠度为零的字⁠符在 Unicode 中至少有四样写⁠法,分别是 零⁠宽⁠空⁠格(zero-width space)、连⁠词⁠字⁠符(Word joiner)、零⁠宽⁠连⁠字(zero-width joiner)、零⁠宽⁠不⁠连⁠字(zero-width non-joiner)。

「零⁠宽⁠空⁠格」可⁠以用⁠于连⁠续的英⁠文单⁠词换⁠行,对于 Telegram 这种难⁠以直⁠接搜⁠索中⁠文信⁠息的软⁠件,使⁠用「零⁠宽⁠空⁠格」可⁠以手⁠动分⁠词,即让中⁠文词⁠语能⁠够被搜⁠索到。

「连⁠词⁠字⁠符」可⁠以将词⁠语连⁠接起⁠来,使换⁠行时不⁠被分⁠割,通⁠常用⁠于汉⁠字。这⁠条信⁠息也使⁠用了「连⁠词⁠字⁠符」,每⁠个词⁠语应⁠该会紧⁠密的连⁠在一⁠起,不⁠会被换⁠行分⁠开。

「零⁠宽⁠连⁠字」与「零⁠宽⁠不⁠连⁠字」主⁠要是使⁠用在复⁠杂排⁠版语⁠言(如阿⁠拉⁠伯⁠语)的两⁠个字⁠符之⁠间,除⁠了这⁠些书⁠写系⁠统之⁠外,还⁠有部⁠分 Emoji 也使⁠用了「零⁠宽⁠连⁠字」,这⁠样能合⁠理的生⁠成各⁠种复⁠杂的 Emoji 。

#清单 #原理 #字符 主要参考自: 《The Beauty of Unicode: Zero-Width Characters
 
 
Back to Top