A Spectre Is Haunting Unicode

(dampfkraft.com)

125 points | by sensanaty 7 hours ago

8 comments

  • gweinberg 1 hour 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 1 hour ago
      That's not on my keyboard... Can I just stick with "ineffable"?
      • holdupagain 50 minutes ago
        Not exactly, it doesn't look like the definition or even connotations of "ineffable" include "unknown".
  • 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/

  • erjiang 3 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 1 hour 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!
    • gs17 1 hour 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.
  • 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....

    • 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.

    • 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?

      • 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.

        • 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

          • 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.

        • 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

          • 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.
            • Joker_vD 1 hour ago
              Yes, and Cyrillic letters also look quite different in Bulgarian and Russian fonts. So what?
          • wodenokoto 2 hours ago
            Same thing, different code points is the opposite of han unification. Han unification is same code point, different thing.
          • numpad0 58 minutes ago
            Unicode merges some Chinese and Japanese characters into same code points and leave others as they are, on random per-character basis. So Chinese guys gets a ton of Japanese mixed texts and it causes tons of problems.

            Japanese users are angry when system chooses Chinese fonts over Japanese, Chinese users apparently suffer with a font mishmash of Chinese and Japanese all the time like a mid-word capitalization. The official sanctioned solution is to just commit a genocide and nuke the offending language out of the system or to attach IVS to every Japanese characters which is like zero padding every single characters by a byte or two.

            It's really putting everyone in pain and making absolutely no one happy, which sounds like what a good compromise tends to be, but LLMs seem to be struggling with there being multiple completely separate language families sharing codepoints but not character shapes or syntax. I've seen a smaller LLM model use made up verbs spilling over from the other language. I believe ML guys don't like datasets that do that kind of things. Same apply to image models.

        • numpad0 1 hour 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).

        • 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 (äöü)?
      • 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.
        • esrauch 1 hour 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)

          • Joker_vD 16 minutes ago
            We also have at least 15 copies of Latin alphabet in Unicode, all differently styled/fonted (there is chancery cursive, mathematical cursive, the fraktur version, the full-width version, etc.)
            • gucci-on-fleek 7 minutes ago
              Yes, but most of those are intended to be used exclusively for math, where the different styles do have semantic meaning. Even in introductory textbooks, it's pretty common to see the roman, calligraphic, and double-struck variants of a single letter all used with different meanings.

              Plus, these characters were only added 20+ years later, and in the supplemental planes, not the BMP.

              • Joker_vD 0 minutes ago
                Letterlike Symbols and Fullwidth Forms are in BMP (and I generously consider Enclosed Alphanumerics to not be a copy of a Latin alphabet).
    • RicoElectrico 3 hours ago
      The Han unification probably was about fitting CJK into the 16 bits aka BMP. It was a blunder indeed.
  • sedatk 3 hours ago
    Fascinating. But, I guess it's better to have superfluous invalid characters than missing real ones.
  • eviks 1 hour 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?

    • gucci-on-fleek 4 minutes 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.

    • Kye 1 hour ago
      OCR was slow and unreliable and was for a very long time.
      • eviks 37 minutes 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 2 hours ago
    Is anyone using these characters now for anything? No youth language or online slang using it?
    • decimalenough 28 minutes 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 17 minutes ago
        It's something! I propose that the first 4 of those characters should in English be called Blinky, Pinky, Inky, and Clyde.
  • philipov 4 hours ago
    "- the spectre of communism. All the powers of old encoding have entered into a holy alliance to exorcise this spectre..."
    • schoen 2 hours ago
      Well, Communism made it into Unicode (U+262D). I tried to show it here but it gets stripped.
      • somat 1 hour 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.

      • eviks 1 hour ago
        Figures, it's a capitalist website after all...