编程与软件工程dampfkraft.com
一个幽灵在 Unicode 中游荡
A Spectre is Haunting Unicode
2018 — 2022,它一次次回到首页
黑点是上首页(≥ 50 分)的那次投稿,空心点是没冲上去的投稿,点越大分数越高。
导读
这篇文章讲的是 Unicode 里的"幽灵字符":日本 JIS X 0208 编码中有一批来历不明、无人知道读音和含义的汉字(日语称"幽霊文字"),它们在制定标准时被误录或来源混淆,随后又被原样搬进了 Unicode,从此永久留在国际标准里。作者逐一梳理这些字符的来历,并讨论它们既无用处、又几乎无法从标准中删除的尴尬处境。
为什么经久不衰:它用一个小切口揭示了标准的荒诞面:错误一旦被编码固化就再也改不掉,而这些"数字化石"至今仍躺在你我每天使用的 Unicode 表里。
HN 评论精选
既然删不掉,不如反向赋予语义,把这些无主字符变成一种有趣的文化实践。
既然这些字符已经存在、也不会消失,我们不如给它们发明含义。显然其中一个的含义就是"幽灵字符";除此之外,还可以有"本可轻松纠正、但为时已晚的错误","从官僚体系缝隙里漏掉的东西",或者"并不会造成实际问题、但看起来就不对劲的错误"。
rossdavidh查看英文原文
So, since we have them and they're not going away, we should invent a meaning for them. Obviously, one of them will have the meaning "ghost character". Other than that, meanings like "mistake that would have been simple to correct if it had been caught quickly, but now it is too late", or "something that slips through the cracks of bureaucracy", or "mistake that does not cause an actual problem, but seems wrong".
Unicode 的收录依据常常只是"历史上确实有人这么写过",因此保留了大量奇特的孤例字符。
我最喜欢的 Unicode 怪字符之一在西里尔字母区。有些书在写"眼睛"(ꙩко)时用字母"ꙩ",据我所知这个字母只用于这一个词。因为双数形式存在,聪明人就用 ꙭчи 或 Ꙫчи 表示"两只眼睛"。这些字符因历史文献中的使用而进入 Unicode,但连完全荒诞的变体也进来了:"多眼炽天使"写作 серафими многоꙮчитїи,所以你要写"很多眼睛"就可以用 ꙮ。
the_mitsuhiko查看英文原文
One of my favorite Unicode oddities is in the cyrillic block. Some books used to use the letter "ꙩ" when writing the word eye (ꙩко). The letter was (from what I can tell) never used for anything else. Because dual is a thing, clever people then went to write ꙭчи or Ꙫчи to mean two eyes. Both those characters made it into Unicode as there was some use in historic script. However even completely absurd variations made its way into unicode. The "many eyed seraphim" is written as серафими многоꙮчитїи. So if you need to write something with a lot of eyes, you can use ꙮ.
质疑 Unicode 收录逻辑前后不一致,且决策历史缺乏公开记录可查。
我很喜欢这个。Unicode 里有很多字符我想知道来历,但这类资料很难查。我最近遇到的是"负号方框拉丁大写字母"(1F170–1F189):26 个字母都在,但 A、B、O、P 是特殊的——用于血型和停车场标志。可为什么呢?为什么决定要全部拉丁字母的反白方框、唯独这四个例外?它们为什么不单独立为符号?我不是抱怨,只是想知道历史。我也想知道其他拉丁字母区段的历史,比如数学粗体 Fraktur:把一种字体塞进 Unicode 是什么来历?为什么只收录了现有的那几个就停了?
banana_giraffe查看英文原文
I love this. There are lots of characters in Unicode I'd love to know the history of, but searching for such things is hard, at best. The one I've stumbled across recently are the "Negative Squared Latin Capital Letter" (1F170 - 1F189 [1]). The 26 letters are there, but "A", "B", "O", and "P" are special. Blood types and a parking symbol. Sure, but why? Why was it decided we needed all of the Latin letters in inverted squares, except those? Why aren't they their own symbol? I'm not complaining here, I just want to know the history. I'd also love to know the history of the other Latin letter ranges. It feels super odd to me to have, say the "Mathematical Bold Fraktur" range of characters (1D56C - 1D59F [2]). What's the history of including a font in Unicode? Why did we stop with the few that are in there? This is probably somewhere online, but I can't find it. [1] https://unicode-search.net/unicode-namesearch.pl?term=negative+squared [2] https://unicode-search.net/unicode-namesearch.pl?term=mathematical+bold+fraktur
韩文音节区同样堆满从未使用、无人能读的"幽灵字符",说明这不是日文独有的现象。
"没人知道它们是什么意思、该怎么读"——这方面真正的传奇是韩文。几乎 95%(甚至更多)的字符从未被使用过,也没人知道怎么读。即使只看区块的第一行,我也能找到 갅、갌、갍、갎 这样的怪字。
dialogbox查看英文原文
> nobody could tell what they meant or how they should be pronounced Definitely the legend of this area is Korean[1]. Almost 95% (or even more) of characters have never been used and no one know how to pronounce it. Even from the first line of the blocks, I could find weird characters like 갅, 갌, 갍, 갎. [1] https://en.wikipedia.org/wiki/Hangul_Syllables#Block
历次讨论
同类还值得读
开源应用架构
The Architecture of Open Source Applications
《开源软件架构》(AOSA)是一本在线免费书,邀请知名开源项目的作者亲自剖析其内部设计,涵盖 SQLAlchemy、LLVM、Audacity、Apache、Bash 等系统。
编程与软件工程上首页 9 次 · 2011–2024aosabook.org编辑精选编程语言简史:简短、不完整且多半错误
A Brief, Incomplete, and Mostly Wrong History of Programming Languages
一篇以戏谑、故意不准确的方式回顾编程语言史的博客文章,用夸张轶事和讽刺定义串起 Lisp、C、C++、Java、JavaScript、PHP 等语言。
编程与软件工程上首页 8 次 · 2009–2021james-iry.blogspot.comSQLite 是如何测试的
How SQLite is tested
SQLite 官方文档页,系统介绍 SQLite 的测试体系:多种测试方法(TCL 测试、模糊测试、回归测试、静态分析等)和海量测试用例,展示了这个小型开源项目如何靠极致测试获得…
编程与软件工程上首页 8 次 · 2009–2025sqlite.org编辑精选高级编程语言(2009)
Advanced programming languages (2009)
Matt Might 的经典文章,按用途推荐“高级编程语言”:如果追求就业就选主流语言,如果追求表达力、学术研究或创业,则推荐 Haskell、OCaml、Scala 等函数式语…
编程与软件工程上首页 8 次 · 2009–2022matt.might.net我的 Forth 与栈机器经历
Yosefk - My history with Forth & stack machines
作者以亲身经历回顾了使用 Forth 语言和栈式机器的历程:既赞叹其简洁优雅、代码量小、可自举的优点,也坦率指出栈操作在实际编程中的痛苦,以及 Forth 社区文化中的问题。
编程与软件工程上首页 8 次 · 2010–2024yosefk.com编辑精选