The Sorry State Of Japanese On The Internet

Japanese text on the web is a lot like politics and sausage – it’s a messy process that nobody should ever have to see. But in the time I’ve been working at Tofugu, I’ve had to bear witness to some horrible, horrible things.

Let me pull back the curtain for a bit and show the absolute nightmare that exists behind Japanese text on the internet.

Kanji, Kanji Everywhere

If you’re unfamiliar with Asian history and culture, ancient Chinese culture had a tremendous impact on virtually every culture in East Asia. Other countries in Asia adopted Chinese food (like ramen!), customs, and parts of the language.

Most of you probably already know that the complicated characters in Japanese called kanji come from Chinese characters, but it doesn’t stop there. Korean has its own adaptation of Chinese characters called hanja, and until colonialism, Vietnamese used Chinese characters in its language.

These are all known as han characters, or sometimes CJK (Chinese, Japanese, Korean) characters.

We Are The WorldYou’d think that this would be a good thing, right? All these different countries and cultures using han characters, it’s like everybody’s joined hands and is singing We Are The World, right?

Oh, if only.

Why Kanji Doesn’t Look Quite Right On The Internet

Why are these han characters a problem? It has something to do with Unicode, a commonly used standard that’s used to display text from different languages on computers.

Somewhere down the line, somebody thought that it would be a great idea to save time and space by saying that, in Unicode, all of these han characters are, for all intents and purposes, exactly the same. This process was called Han Unification, and would soon become the bane of my existence.

Han Unification is a problem because han characters can look different and mean different things in each language.

Just take a look at this picture: it’s the same Unicode character, rendered in five different languages:
The Chinese versions look completely different from the other languages.

Unless the website explicitly says that a piece of kanji text is Japanese (with the HTML lang attribute), it won’t look quite right. It might use the Chinese style and make everything else (i.e. kana) look out of place.

This becomes a problem more often than you might think, whether it’s on your phone, when using electronic flashcards, or just reading the news.

And when you throw in different fonts, operating systems, and browsers into the mix, all bets are off.

Worse still, people argue that this is exactly what Unicode should be like. The argument is that, despite stylistic and cultural differences, underneath it all these characters are essentially the same.

I can understand the rationale behind Han Unification but, since I have the emotional capacity of a child and just want things to work, I’m going to say that it’s dumb and stupid and I hate it.

Why Japanese Isn’t Readable On The Internet

But hey, if your kanji looks wrong, all’s not lost. You can always use furigana, the simple, little characters you see above kanji to help you read them. Right?

Wrong.

While there is the technology to do this on the web (the HTML ruby element), you won’t see it much. It just doesn’t work on all web browsers (like Firefox), and few people choose to use it on their websites.

I would love to include furigana in the kanji I write to make it easier for beginners, but right now it’s not really an option.

But, unfortunately, web developers seem much more interested in tech demos and proof-of-concept sites than making sure the web looks as good in other languages as it does in English.

Maybe someday Japanese will get the first-class treatment on the web that it deserves, but right now I think we have a long way to go.

  • http://www.tofugu.com/ Hashi

    Huh, I didn’t know that ruby was an HTML module – worse yet, I wasn’t aware that the W3C made distinctions like that.

    Even still, it seems like every browser vendor at least plans to implement ruby, as far as I can tell.

  • http://mobobe.com 13xforever

    You can skim the recommendation (it’s not so big) and it’ll be more clear what’s the state of this feature: http://www.w3.org/TR/ruby/

  • ultraali453

    I guess us beginners can use furigana addons with browsers to make reading easier

  • IndigoSelvedge

    Rikaikun works for Chrome, as well.

  • ಠ_ರೃ

     I agree. I’ve seen a lot of complete websites, but this? This is VERY complete. I also vote for keeping it.

  • Zealot_04

    About 冷… Now this is probably going to frustrate you even more Koichi, but in Japanese text you’ll see it appear as the Korean version, but never this way in handwriting because it would be improper. In fact, everyone in Japan writes it the Chinese way. I asked professors about this at my university (南山大学) in Nagoya, and they insisted that only the Chinese way is acceptable in handwriting. Yamasa also supports this:

    http://yamasa.cc/members/ocjs/kanjidic.nsf/SortedByKanji2THEnglish/%E5%86%B7?OpenDocument 

  • Eee

    A few understand the Unicode standard in the wrong way. Unicode is just a binary representation of a character that can be implemented in different character encodings. By itself, it is NOT a character for “display”; it is a character codepoint – a binary index to represent a character in a binary array that represents arbitrary characters. Note “arbitrary” there since I can design a font that represents something different than the normal characters like Wingdings font.

    In Unicode, the first 128 codepoints are the same in any character encoding – they are called ASCII character set and they are present in codepage-based ASCII encoding (Latin-1 (Windows-1252), Cyrillic, Thai, etc.) and UTF-xx encoding.

    Anything above the first 128 codepoints are either codepage-based specific or Unicode-based. 

    The next 125 codepoints can be codepage-specific and Unicode-based. 

    However, codepage-based specific encoding covers up to the first 256 codepoints. Codepoints above 256 codepoints fall under Unicode encoding range: UTF-8, UTF-16-LE, UTF-16-BE, UTF-32-LE and UTF-32-BE.
    A “display” character that you can see is represented by a font symbol (a combination of one or more glyphs). 
    For example, an apostrophe symbol in Arial font is u0027 in Unicode and 0×27 in hex. Its position is 27th in the Arial font symbol list and it contains one glyph. A symbol in any CJK-based font can have more than one glyph. If you use Wingdings font, codepoint 27 is not an “apostrophe”; it is a “candle”.Note that there are non-Unicode-supported fonts and Unicode-supported fonts. Non-Unicode-supported fonts covers up to 255 codepoints (0×00 to 0xFF): on Windows, the fonts are Symbol, Courier, Serif with .FON extension

    Unicode-supported fonts are fonts that include the first 256 codepoint (128 ASCII set + codepage specific set) and Unicode codepoints; they can be character set specific or full character set. These fonts are provided in different extension: TTF (True Type Font) and OTF (OpenType Font)

    Character-set specific Unicode-supported fonts are Mincho (Chinese-Japanese-Korean (CJK) charset), Lathal (Tamil charset), Mangal (Devanagari charset).

    Full Unicode-supported fonts are fonts that cover all Unicode charsets. On Windows, it is Arial Unicode MS (available when Microsoft Office is installed)

    All browser support changing fonts and encoding to suit how you want to display characters in the web pages if the CSS font style attribute is not set.

    Hun unification? Probably, that is why it is called CJK charset.

    If anything is wrong in what I’ve just said, please correct me.

  • Pmhausen

    Hi, all,

    since I did not fully understand the concepts in the article at first, I looked up Han Unification – there is a
    dedicated Wikipedia entry on it.

    Oddly enough, in the tables that are supposed to feature examples of successful unifications and not so
    successful ones, to me currently all characters in one row look exactly the same!
    I’m reading and writing on an iPad at the moment.

    So ,yes, now at least I do understand the problem ;-)

    Best regards,
    Patrick

  • Juicy cock 123

    hi

  • Jonathan Harston

    Agree with you there. I had to fight to get a page on my site (mdfs.net/JGH/Docs/Me/iknow1.htm.sjis) to render *one* name in Japanese correctly. I had to put a Content-Type in the header *and* change the page name to end with “.sjis” *and* constantly cut’n'paste the characters from other pages to try and get the correct characters pasted in. The thing is, the Content-Type is all you should need. Grrr.

  • Justin Stressman

    Hashi-san, one thing you might want to note is that you apparently missed part of the ruby mark-up.

    Take for instance the following;
    子供(こども)

    The tags are the “Ruby Parentheses” tags that allow you to specify which optional characters you’d like to use to enclose the ruby text in browsers that don’t properly support ruby (like Firefox).

    You stick the whole thing in a container, stick your kanji first, and following the kanji you’d like the furigana to be associated with you stick the tags for the left parenthesis, the tags enclosing the furigana ruby text, and then the right parenthesis tags.

    So the example above would actually show up as 子供(こども) in Firefox, which really isn’t that bad.

    And while it might be more accurate to do furigana per kanji, until Firefox includes official support, for now it’s visually better to just do whole word ruby I think.

    (IE9 actually has nice support for Ruby as well. So Chrome, Safari, IE9+ support it, but Opera and Firefox don’t yet. And in my experience trying to hack in support with CSS gets really messy because of inconsistent browser support for inline-table placement and the other types of CSS generally used for placement. So I think it’s extensions for now for Firefox or live with the fallback ruby as shown above.)

  • http://www.tofugu.com/ Hashi

    Glad that the wiki article helped you out! Han Unification is definitely a complicated issue and I wasn’t sure if I explained it very clearly :x

  • http://www.tofugu.com/ Hashi

    Good point, I should probably stop dragging my feet waiting for Firefox (and Opera, I guess) to have proper Ruby support and just use the kind of markup you talk about.

  • http://www.tofugu.com/ Hashi

    I’m not sure if anything you’ve said is wrong, because I think it was mostly over my head, sorry :x

  • iryw

    Well you could include furigana and limit those who can see it by applying to only those with Safari browsers.

  • Guest

     Thanks for the tip! As a junior web-designer myself, info like this is very useful and I’ll bear it in mind for future sites. However, another crushing blow to Firefox.. moving to Chrome is starting to look close to inevitable now.

  • Zaywex

    Well, there’s already a highlight and look up kanji app which makes things easier.

  • Melissa

    Thanks for explaining the Unicode. I remember looking up the stroke order for the kanji in the picture and being confused because the drawing looked nothing like the text…

  • Takashiro

    That would defeat the purpose of the web, we need to work within the standards that we have and push the browser developers to continue improving support for certain features. I mostly use Chrome, but Tofugu, and other sites work best with Safari, as Apple’s had the benefit of creating multi-lingual OSes.

  • http://mistersanity.blogspot.com Jonadab

    The ruby element wouldn’t be needed in HTML, and every single other application and file format ever wouldn’t also need to make special provisions for ruby text, if only Unicode had included combining furigana characters (and pinyin), similar to how it includes combining diacritics. Unlike Han Unification (which cut the total number of Unicode codepoints in half or better and is probably the only reason there’s any such thing as a complete Unicode font), the failure to support furigana saved, what, fifty characters? Maybe closer to eighty if you don’t want to nest combinations (e.g., to add combining-furigana-dakuten onto a combining-furigana-fu when you need a bu pronunciation). That would’ve been totally manageable, and it would make dealing with Japanese text *majorly* easier.

  • AnadyLi

    I’m thirteen, Chinese, and I have NEVER noticed this.

  • Johannes Löthberg

    “Half-width kana were used in the early days of Japanese computing, to
    allow Japanese characters to be displayed on the same grid as monospaced fonts of Latin characters”

    http://en.wikipedia.org/wiki/Half-width_kana

  • http://twitter.com/Silgrond Silgrond

    I’m really late, but I’ve always hated the font rendering on Windows. I’ve found this app, which basically changes the Cleartype rendering to mac-like. You can even change it to be registry-based, so everything will be smooo~th. (There are “themes” too) http://code.google.com/p/mactype/