A spectre is haunting Unicode (dampfkraft.com)

215 points by sensanaty 17 hours ago

joshdavham 15 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/

erjiang 14 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.

retrac 12 hours 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!

thaumasiotes 7 hours ago

> I know 彁 isn't real: but it still insists on a pronunciation: ka in Japanese, (gē or gé Mandarin).

Huh? How do you pronounce 切?

> And it hints at meaning: bowed weapon, sound, elder brother; but your guess is as good as mine!

Why is "elder brother" a meaning hint if you've already assumed that 哥 is the phonophore?

gs17 12 hours 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.

lidavidm 9 hours ago

Isn't that backwards? The nonexistent character is in the -digitized- version so presumably OCR or something got 彊 wrong, that's not saying that 彁 was used in the -print- version.

Indeed, the source link is about exactly this: a crappy scan appears to have 彁 but a better copy reveals it was 彊.

joemi 5 hours ago

gweinberg 12 hours 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 彊.

arcanemachiner 11 hours ago

That's not on my keyboard... Can I just stick with "ineffable"?

holdupagain 11 hours ago

Not exactly, it doesn't look like the definition or even connotations of "ineffable" include "unknown".

speerer 10 hours ago

thaumasiotes 7 hours ago

9dev 9 hours ago

More mundanely, you could also use it as a marker character, given that nobody except for sneaky little QA hobbitses will ever use it in their input.

mkehrt 8 hours ago

So www.catb.org/~esr/jargon/html/M/mu.html

hnfong 15 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....

CodesInChaos 14 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?

hnfong 14 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.

wodenokoto 13 hours ago

charcircuit 9 minutes ago

pamcake 14 hours ago

numpad0 12 hours ago

panzi 12 hours ago

muvlon 13 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.

esrauch 11 hours ago

gsnedders 12 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.

zx8080 5 hours ago

What is the rationale to the unifying direction of changes in Unicode?

RicoElectrico 14 hours ago

The Han unification probably was about fitting CJK into the 16 bits aka BMP. It was a blunder indeed.

knuckleheadsmif 7 hours ago

It is a blunder that Japan could not see that they just copied other characters in to JIS and it’s also why we see duplicated Romaji characters within Unicode. The duplication is frankly bad regardless of number of bits need to encode although with 16 it was indeed a requirement.

sedatk 14 hours ago

Fascinating. But, I guess it's better to have superfluous invalid characters than missing real ones.

xelxebar 9 hours ago

Xu Bing has a book that consists entirely of invented characters:

https://en.wikipedia.org/wiki/A_Book_from_the_Sky

zahlman 2 hours ago

(2018)

I've seen YouTube videos on this topic before.

> The original character (𡚴) was not added to JIS or Unicode until much later and doesn't display on most sites for me.

It's from Unicode version 3.1 (published 2001) so this is surprising.

tengwar2 7 hours ago

Before that, there was the case of ÿ and Ÿ in the base IBM character set (see https://en.wikipedia.org/wiki/Ÿ). The former exists in a handful of proper nouns in French and Hungarian (as in about five proper nouns), but only as a y with a diæresis, which would normally be handled with a Unicode modifier symbol. It is also used in a couple of endangered languages in South America, which would not have influenced the character getting in to a PC character set. It is thought that possibly it was supposed to represent the Dutch "ij" character, but apparently that is never written as "ÿ" in print. Ÿ seems to not be used by any language.

mostlylurks 5 hours ago

> Ÿ seems to not be used by any language.

Surely those aforementioned non-initial cases would sometimes find themselves in a piece of all-uppercase text? You'd have found such things in print media even before the advent of computers.

NegativeLatency 5 hours ago

Not everything is upper/lower convertible like ß for example (as far as I know)

At least until 2017, I imagine there are others though.

> In 2017, the Council for German Orthography officially adopted a capital form ⟨ẞ⟩ as an acceptable variant, ending a long debate. https://en.wikipedia.org/wiki/%C3%9F

pseudohadamard 6 hours ago

Great, so they added Ÿ but not n̈, making it very difficult to write music reviews.

(Not sure how the latter will render in your browser).

podocarp 3 hours ago

So what is the spectre? I thought this was proposing something new like the manifesto

pocksuppet 7 hours ago

A language where you can make up new characters seems anathema to a universal character encoding.

eviks 12 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?

zahlman 2 hours ago

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

Starting with version 2.1 they made it so that code points can't ever be unassigned. People were getting really upset with the removals, since they can result in old data being misinterpreted. (Er, nothing actually was removed in 2.1, but it probably didn't become official policy until 3.0… ?)

Besides, it's useful to have the bad characters in there for people who want to write posts like this one discussing them.

gucci-on-fleek 10 hours ago

> Not that hard to imagine, OCR existed back then?

How do you train OCR on a character that doesn't exist though? Even these days, OCR often confuses the 52 Latin characters, so I wouldn't expect as good of results with older technology and some 20k CJK characters.

Izkata 9 hours ago

(Talking about Japanese here)

I don't know if this is how OCR would work here, but they're made of components called radicals. It's kind of like how letters make words, but in a two dimensional layout, and one letter was wrong and a nonexistent word was made.

For example 彁 is made of parts of 引 and 歌 (the first that popped into my mind).

IIRC there's only like 200-something radicals, though some can be hard to spot due to how they overlap or nest inside each other.

cyphar 5 hours ago

Kye 11 hours ago

OCR was slow and unreliable and was for a very long time.

eviks 11 hours ago

"slow" - wasn't like they were pressed for time. It took them almost 20years to even start the investigation! Also not certain you needed that much reliability compared to what was available to match one pic to a quality scan to get a reasonable number of candidates

panzi 12 hours ago

Is anyone using these characters now for anything? No youth language or online slang using it?

decimalenough 11 hours ago

There's some fan fiction that treats the characters as names of ghosts and comes up with back stories and visualizations for them (the article links to a compilation, but it's 403ing for me). Nothing mainstream though.

panzi 10 hours ago

It's something! I propose that the first 4 of those characters should in English be called Blinky, Pinky, Inky, and Clyde.

amake 9 hours ago

Should probably have "(2008)" in the title

Dwedit 9 hours ago

Saw headline, expected branch prediction vulnerability involving Unicode, was surprised at a completely different topic.

schoen 6 hours ago

See also https://en.wikipedia.org/wiki/A_Book_from_the_Sky (a 1988 art project based on intentionally making up ghost characters by hand and printing a whole book with nonexistent but aesthetically plausible Chinese characters). Amusingly, Wikipedia mentions that over a dozen of them (out of about 4,000) were later found to accidentally exist!

philipov 14 hours ago

"- the spectre of communism. All the powers of old encoding have entered into a holy alliance to exorcise this spectre..."

schoen 13 hours ago

Well, Communism made it into Unicode (U+262D). I tried to show it here but it gets stripped.

somat 11 hours 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.

mjg59 5 hours ago

eviks 12 hours ago

Figures, it's a capitalist website after all...

pocksuppet 7 hours ago