2

This seems to be a long-standing Ubuntu problem, I've experienced it since years ago if I remember correctly.

I have language support for both Chinese and Japanese installed (and want to keep it that way -- I do know though that the problem can be "resolved" by uninstalling Chinese fonts, I have experimented with that). The problem is that Japanese text shows as Chinese glyphs. Not for every single Japanese character, but presumably for ones that the system thinks has a corresponding glyph in Chinese.

This happens in all applications: libreoffice, browsers, gedit, terminal etc.

(This problem is not about input methods.)

Fonts installed:

Chinese (and Japanese)
fonts-arphic-ukai
font-arphic-uming
ttf-wqy-microhei
ttf-wqy-zenhei

Japanese
fonts-takao-gothic
fonts-takao-mincho
fonts-takao-pgothic

Others that seem to support Japanese/Chinese
fonts-droid

Steps to reproduce: Install fonts/support for both Japanese and Chinese, and then type Japanese character. You need to be able to recognize differences between glyphs from the two languages to see this problem.

Examples: 誤り、直す (Will upload pictures.)

2
  • Could you provide more information about the context: applications used, input method, fonts, steps to reproduce etc?
    – chaskes
    Apr 11, 2013 at 1:29
  • Possible answer; if this is way off please comment...
    – Rinzwind
    Apr 11, 2013 at 8:37

2 Answers 2

1

This is not an Ubuntu problem (or a problem with any operating system), but stems from the way Unicode is designed. Unicode uses a unified database for CJK characters called Unihan. A character (single Unicode code point) may be represented by different glyphs in different writing traditions.

The issue of the glyph used by the screen/printer/browser for a given character (code point) is a result of the way different fonts map the same Unicode character to different glyphs.

The solution is to as much as possible use a specific font made for each language, keeping in mind that shared or web docs will render glyphs according to the local configuration. In short, it's the Unicode code point in the doc itself that matters not the glyph on the screen.

If you really need to make sure a specific glyph is used, you will need to have a way to lock in or embed the needed font in your document or app.

From the Unicode FAQ:

The Unicode standard is designed to encode characters, not glyphs...

In the overwhelming majority of cases where a Han character is written differently in different locales, readers from one locale would recognize the form used in another; in all cases, experts from throughout East Asia would recognize the fundamental unity of the character...

There are occasional instances of unified characters whose typical Chinese glyph and typical Japanese glyph are distinct enough that the Chinese glyph will be unfamiliar to the typical Japanese reader, e.g., 直 U+76F4. To prevent legibility problems for Japanese readers, it is advisable to use a Japanese-style font when presenting Unihan text to Japanese readers.

Han Unification is designed to preserve legibility. Documents typically can be simply displayed in the font preferred by the user. Where a distinction in style needs to be made (for example, Chinese-style vs. Japanese-style glyphs in the same document), appropriate fonts should be applied to the specific text as needed.

Because of limitations in existing fonts, it may occasionally happen that a rare kanji will be displayed using a Chinese-style glyph where a Japanese-style glyph would be preferred. This is a font issue, not a character encoding issue, and the same problem can occur with other character encoding standards.

3
  • Unicode is a retarded pile of crap maintained by morons. And, as luck would have it, it's all we have.
    – Kaz
    Apr 11, 2013 at 17:43
  • @Kaz I was inclined to say the same, glad you said it first. It seems the brains behind Unicode didn't care much about Asian languages.
    – 5th
    Apr 12, 2013 at 4:29
  • The "brains" behind Unicode also don't care about programming languages. Surrogate pairs, WTF? And, okay, so characters have multiple glyphs. Okay, so that means codes are scarce, right? No, no, codes are cheap! That's why we can make some characters with a single dedicated code or some mashup of multiple codes. And proper code has to handle all the representations, and compare mixtures of them equal and whatever else. Oh, and then there is the incomprehensible mess of Unicode regexes.
    – Kaz
    Apr 12, 2013 at 4:33
1

Were the encoding is UTF-8, applications will chose the first font capable of displaying that character. By default it goes in alphabetical order. So if you have both Chinese and Japanese fonts installed, you might end up with glyphs you don't want.

You can select the order that applications will select the fonts by editing your ~/.fonts.conf file. Though if you move Japanese in front of Chines you might end up reversing the problem.

1
  • Thanks! At least I'll be able to control it, pity UTF-8 wasn't made with proper support for both languages at the same time though.
    – 5th
    Apr 12, 2013 at 4:36

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .