返回

文章详情

消失的波兰字母S的奇怪案例

Hacker News2026年6月28日 12:44

马尔钦·维哈里 2015年2月2日 / 1800字 最初发表在Medium Engineering 一个键盘bug经历了三十年的演变 几周前,有人在Medium上向我们报告了这个问题:“我刚开始写一篇波兰语的文章。我可以输入每个字母,但就是不能输入Ś。当我按下Ś的键时,字母根本没有出现。只有在Medium上发生这种情况。”这很奇怪。我们并没有以任何方式对任何语言做特殊处理,即使我们真的这样做了……在32个波兰字符中,为什么这个随机的字母会是唯一出现问题的呢? 事实证明,这并不是那么随机。这是一个关于四个偶然成分跨越数十年(如果不是几百年)结合在一起,导致最奇怪的bug的故事,以及我们是如何解决它的。 成分1/4:波兰语言 波兰语是第二大使用的斯拉夫语言,仅次于俄语,略早于乌克兰语。然而,与这两种语言相比,波兰语与德语或法语等西欧语言相似,使用英语/拉丁字母,外加一些自定义。 这是基本的英语字母表,与经典的拉丁/罗马字母表大致相同: 原始的波兰单词中从不包含Q、V或X,尽管我们保留了它们用于拉丁文和其他借用的单词: 作为这三个字母的交换,波兰语则增加了九个额外的变音符号,使用拉丁字母作为其基础,且这些变音符号都相对常用: 从20世纪初开始,打字机需要适应这额外的9个字母。如果你比较一下美国的打字机和波兰的打字机: …并查看键盘的右侧,你会看到两个变音符号——Ł和Ż——被提升为独立的键,其余的与数字共享键位。(打字员被鼓励通过按下拉丁字符、回退和覆盖字母重写符号来组装剩余七个字母的大写版本。这在打字机时代并不罕见。)为了给额外的字母腾出空间,打字机不得不放弃一些标点符号,最显著的是分号(逗号 + 回退 + 冒号)和括号(在日常使用中被斜杠替代)。 成分2/4:共产主义 对于一个对1980年代早期个人计算机感兴趣的人而言,波兰的共产主义意味着两件事:没有太多可支配收入,禁止从西方商业进口计算机(个人进口仍然可能,前提是你有足够的外汇和某种获取方式)。我在波兰长大。我的第一台计算机——辉煌的Atari 800XL——是1979年的原创技术,1983年重新包装。我在1986年以二手的方式得到它。这并不独特。技术在铁幕那边被延迟;大多数计算机是从西方进口的。禁止商业进口意味着在很长一段时间里,没有商业实体能够准备计算机以供在波兰使用。外国计算机带着原版说明,未翻译的软件,以及像这样的美国键盘: 当法国、德国和其他国家早期的个人电脑配备了与其前身打字机布局紧密相似的定制键盘时…… 早期IBM键盘带有法语AZERTY和德语QWERTZ布局……在波兰,我们不得不找到另一种输入我们语言中独特的9个变音符号的方法。 我们的额外字符可能与拉丁字符非常相似,并且在字母分布中只占约8%(你在玩Scrabble时会讨厌它们),但它们很重要。你不能简单地把它们互换。考虑这两个相似的短语: 完全可互换,对吧?嗯,不完全是: 还有更多类似的例子。碰巧的是,在那些早期的PC时代,我甚至很高兴我的全名,马尔钦·卡齐米日·维哈里,并没有带有任何复杂我的生活的变音符号。但肯定有什么方法可以解决这个问题,不是吗?回到键盘:我们无法以任何方式修改它,因为那需要干扰硬件,但我们仍然可以尝试找到一个聪明的解决方案。有两个修饰键——Ctrl(今天的Caps Lock所在),和Alt。 在Ctrl C和Ctrl V成为复制和粘贴的典型快捷方式之前,Ctrl就已经被作为常用快捷键使用。但Alt相对不常见。因此,一个事实上的标准诞生了,将我们8个变音符号分配给其拉丁对应字母,将一个分配给附近的字母:人们开始称呼旧的布局为“打字员的”,将这种新发明称为“程序员的”,因为早期的PC用户大多数是程序员,或者因为它保留了编程中常用的所有标点符号。新的布局是一个人体工学的噩梦——看看有多少个字母和左侧孤独的Alt非常接近,需要用同一只手按压——但它易于理解,并且不需要任何昂贵的硬件修改甚至便宜的修改(例如贴纸)。它保留了下来。附近的几个国家——罗马尼亚、当时的捷克斯洛伐克——也想出了类似的方案。这个设置如此成功……

赞助内容

NordVPN Next-gen Antivirus

本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。

请我喝杯咖啡