A Spectre Is Haunting Unicode
111 points by sensanaty 7 hours ago | 29 comments

gweinberg 32 minutes ago
It occurs to me that we can use 彊 to mean "a completely unknown concept that cannot be named". For example if you ask, "when Cthulhu rises from its slumber, what is thefirst thing it will do? Probably it will 彊.
reply
arcanemachiner 14 minutes ago
That's not on my keyboard... Can I just stick with "ineffable"?
reply
joshdavham 5 hours ago
The author Paul McCann (polm) is one of my favourite programmers out there!

He’s done awesome work in the Japanese NLP space over the last decade which has really helped me in my language learning projects.

He maintains a mecab (Japanese tokenizer) wrapper for Python [0], has a book on Japanese NLP written for English speakers [1] and also worked on Spacy at one point [2].

[0] https://github.com/polm/fugashi [1] https://www.japanesenlp.com/ [2] https://spacy.io/

reply
erjiang 4 hours ago
I think there’s evidence found for the origin of “彁” as the result of a poor scan of a newspaper article. Look up “彁 新聞” to find some japanese sources about this.
reply
retrac 44 minutes ago
Ghost characters reveal something about the joint semantic and phonetic nature of most Chinese characters. I know 彁 isn't real: but it still insists on a pronunciation: ka in Japanese, (gē or gé Mandarin). And it hints at meaning: bowed weapon, sound, elder brother; but your guess is as good as mine!
reply
gs17 41 minutes ago
The article mentions "an example of 彁 mistakenly used in a digitized Taisho newspaper due to a faded printing of 彊", but to me that implies the symbol already existed before then.
reply
hnfong 4 hours ago
Well, vast swaths of the Kangxi dictionary (which serves as "sources" for probably most of the CJK characters) are such "ghost" characters as described in the article...

The peculiar properties of CJK characters and the philosophy (apparently the Japanese did not like Unicode's tendencies towards Aristotelian essentialism) under which they were implemented in Unicode probably singlehandedly forced unicode to expand beyond the BMP....

reply
CodesInChaos 4 hours ago
> apparently the Japanese did not like Unicode's tendencies towards Aristotelian essentialism

Do you mean Han Unification? I.e. that conceptually equivalent characters which are written differently in Japan and China received only a single unicode code-point, and are rendered the Chinese way by default on most computers?

reply
hnfong 4 hours ago
Yes. As far as I understood it, the result was an incoherent mess.

I think some characters got different code points, while others were merged. And apparently the Japanese complained bitterly over the ones that were merged. If you had read any articles about that, this is probably what you have in mind right now.

And I'm also a bit tilted by the ones that had different code points, because when processing CJK text now we have to deal with characters that are (in my native Cantonese) essentially the same, looks similar (to my undiscriminating eyes), yet having different code points so that things like text search sometimes don't work.

Of course I'm not "blaming" the Japanese, if anything the simplified vs traditional Chinese thing is much more of a practical problem, and the conflicting code points I deal with on a routine basis are more of a Hong Kong vs Taiwan thing, but I was told that the Unified CJK thing adopted a different "philosophy" from the rest of Unicode (which I think really is some kind of Aristotelian essentialism...) mostly due to vocal objections from the Japanese.

reply
wodenokoto 2 hours ago
Han-unification was the result of Asian scholars, in particular the Ideaographic Research Group [1]

I have no idea what "Aristotelian essentialism" is supposed to mean, or if you are saying that the unification was that.

> And apparently the Japanese complained bitterly over the ones that were merged.

and

> but I was told that the Unified CJK thing adopted a different "philosophy" from the rest of Unicode [...] mostly due to vocal objections from the Japanese.

Seems to contradict each other.

[1] https://en.wikipedia.org/wiki/Ideographic_Research_Group

reply
hnfong 2 hours ago
Sorry, probably not very standard terminology. I somehow picked it up from the OReilly book: Fonts & Encodings: From Advanced Typography to Unicode and Everything in Between

Page 55:

""" there are characters with no glyphs. glyphs that can correspond to a number of different characters according to context. Glyphs that correspond to multiple characters at the same time (with weightings assigned to each), and even more possibilities.

The problem of glyphs and characters is so complex that it has gone beyond the realm of computer specialists and has come to be of interest even to philosophers. For example, the Japanese philosopher Shigeki Moro, who has worked with ideographic characters in Buddhist documents, goes so far in his article Surface or Essence: Beyond Character Model Set [274] as to say that Unicode's approach is Aristotelian essentialist and to recommend supplanting it by an approach inspired by Jacques Derrida's theory of writing [114, 115]. The reader interested in the philosophical aspects of the issue is invited to consult [165,156], in addition to the works cited above. """

I think "essentialist" is probably a good description of the philosophy of how Unicode defines characters as opposed to fonts and glyphs, so I adopted it.

reply
numpad0 31 minutes ago
I don't know but last I glanced at it, the Unification was implied to be coming from Chinese pressure than Japanese. Each of Kanji/Hanzi countries already had each own acceptable common use character sets and those could have been just populated into each own spaces. That seemed like the original plan at some point.

There has to be a reason why it happened(as to why Unicode suddenly started insisting it has to fit inside a 2^16 total chars or whatever).

reply
pamcake 3 hours ago
> I was told that the Unified CJK thing adopted a different "philosophy" from the rest of Unicode

What would that philosophy be about? Sounds apocryphal. Unicode has never done "unification" like that for other languages/scripts?

i/ı/i, ö/ø/ø̈/oͤ: Same same, different codepoints.

Search and sorting is a mess everywhere. Depending on your locale, ö sorts either after o or after z. Sometimes it's semantically and phonetically equivalent to o wrt search but moreoften not. https://en.wikipedia.org/wiki/%C3%96

reply
numpad0 4 minutes ago
[delayed]
reply
yorwba 2 hours ago
Well, Unicode didn't unify 門/门 either, but the appearance of the second glyph changes a lot depending on whether you use a Chinese font or a Japanese one. Meanwhile they did unify all the graphical variants of Latin characters with identical semantics, it's just that everyone is so used to the result that you hardly notice not being able to control whether g has a hook or a looped tail, and nobody expects to copy some German blackletter text into a French document and have it show up visually distinct, without explicitly setting the font.
reply
Joker_vD 50 minutes ago
Yes, and Cyrillic letters also look quite different in Bulgarian and Russian fonts. So what?
reply
wodenokoto 2 hours ago
Same thing, different code points is the opposite of han unification. Han unification is same code point, different thing.
reply
panzi 2 hours ago
Interesting. I guess there are no well working normalization functions as there are for the different code points that can make umlauts (äöü)?
reply
muvlon 2 hours ago
Meanwhile, Latin a and Cyrillic а, which look identical, have the same origin and are often pronounced identically too, get separate codepoints. CJK unification was not based on any clear preestablished principles but simply an attempt to cling to 16-bit codepoints, Asian languages be damned.
reply
esrauch 28 minutes ago
Cling to 16 bit codepoints sounds like a legitimate explanation? Latin and Cyrillic didn't would have saved no relevant amount of space.

It looks like the CJK unified space is over 20,000 characters, so that's a real technical magnitude distinction compared to Latin and Cyrillic. "Asian languages be damned" seems like a bad faith read, compared to "Java and Windows char is 16 bits and that will never change realistically" (and in fact they still haven't, even in 2026 things which rely on UTF16 instead of UCS2 are still commonly bugged unfortunately)

reply
gsnedders 2 hours ago
> The peculiar properties of CJK characters and the philosophy (apparently the Japanese did not like Unicode's tendencies towards Aristotelian essentialism) under which they were implemented in Unicode probably singlehandedly forced unicode to expand beyond the BMP....

Note that Han Unification has a history predating Unicode, and the Unicode work very much followed on from that.

The most notable is CCCII, developed in Taiwan in the early 80s, and then standardised in various places.

That's not to say that it hasn't been controversial (it has!), nor to say that it hasn't caused problems (it has!), but it's also unfair to say that it's just Unicode doing its own special thing.

reply
RicoElectrico 3 hours ago
The Han unification probably was about fitting CJK into the 16 bits aka BMP. It was a blunder indeed.
reply
eviks 2 hours ago
> The original character (𡚴) was not added to JIS or Unicode until much later and doesn't display on most sites for me

Why didn't they simly replace the original bad one?

> nine hundred pages. Imagine tracking down a single character without a page reference

Not that hard to imagine, OCR existed back then?

reply
Kye 22 minutes ago
OCR was slow and unreliable and was for a very long time.
reply
sedatk 3 hours ago
Fascinating. But, I guess it's better to have superfluous invalid characters than missing real ones.
reply
panzi 2 hours ago
Is anyone using these characters now for anything? No youth language or online slang using it?
reply
philipov 4 hours ago
"- the spectre of communism. All the powers of old encoding have entered into a holy alliance to exorcise this spectre..."
reply
schoen 2 hours ago
Well, Communism made it into Unicode (U+262D). I tried to show it here but it gets stripped.
reply
somat 6 minutes ago
I have it it in my .XCompose as

    <Multi_key> <c> <c> <c> <p> : "\xe2\x98\xad" #symbol representing proletarian solidarity between agricultural and industrial workers
Never used, but I laugh every time I see it there.

As a slightly related tangent, The compose key mnemonic interface for rarely used characters is pretty great, beats trying to remember alt codes.

reply
eviks 58 minutes ago
Figures, it's a capitalist website after all...
reply