[Bug 13829] Wine does not have CJK fonts

wine-bugs at winehq.org wine-bugs at winehq.org
Mon Jun 1 01:27:23 CDT 2009


http://bugs.winehq.org/show_bug.cgi?id=13829


Andrea Denzler <denzler at usa.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |denzler at usa.net




--- Comment #17 from Andrea Denzler <denzler at usa.net>  2009-06-01 01:27:21 ---
Hi,

I wrote a small application to reproduce the Bug and offer the possibility to
make some tests.

For a developer there exists two ways to show foreign characters:
1) change current locale / code page to Chinese (for example) and send the
correct data
encoding to the windows/dialog boxes. This is compatible since Win98 (at
least).
OR
2) send directly unicode characters to the windows/dialog boxes. This is
compatible only since Win2000.

Personally I prefer the method 2 because it works on any Windows installation
regardless of the codepage/user settings. Also maybe it's the only way to show
multiple character types in the same application (for example russian, chinese
and arabic characters at the same time), but I'm not 100% sure about. 
So my program is sending always Unicode characters to the windows/dialog boxes 
(and expect unicode characters as the input).

In the FontTest.exe example I have a simple TextBox that is filled with foreign 
characters. See also the attached FontTestExample.txt file in UTF8 encoding.
You can also open that text file and copy/paste in the text into the
FontText.exe
window. The result is the same.

When I create a Font I can specify it's family (Arial, Tahoma, etc)
and the Charset to use. The Charset has a higher priority than the Family. So
If
I choose a Chinese Charset but my Font Family doesn't contain such glyphs then
Windows seeks for another Font to use that contains such glyphs. Better a
"wrong"
font than no characters at all. Windows and Wine have the same behaviour.
But there is a difference. 

Under Windows: the DEFAULT_CHARSET is a request to show all existing Unicode
characters. So if the choosen Font Family does not contain all glyphs then
another Font Family is choosen.
See windows1.png and windows2.png. The default charset will show all 
strings correctly. When I select the Charset (Shift JIS) for Arial then 
a different Font is used, probably a better matching Arial font for Japanese.

Under Wine: the DEFAULT_CHARSET seems to require only the basic Ansi charset.
See wine_nofonts_arial.png, in the tree examples I select Arial font family: 
Default charset --> Arial font is choosen, but only some strings are shown.
Chinese charset --> Arial is overriden by another family. Chinese is shown.
Johab   charset --> Arial is overriden by another family. Korean is shown.
The problem is that whatever charset I try, it never happen that all 
strings are shown correctly, unlike on Windows.
What I think is that none of the fonts in the default installation of
Wine contains all glyphs of the Unicode set.
Even installing "allfonts" with winetricks doesn't change this situation.
See wine_nofonts_tahoma_courier_times.png for a view of some other fonts.

But after I copy the free unifont.ttf into the  ~/.wine/drive_c/windows/Fonts
folder and restart FontTest.exe I will get another situation.
(The unifont.ttf was downloaded from the site
http://unifoundry.com/unifont.html)

See wine_unifont.png.
The Default charset still select the Arial font showing only some characters,
even if I know that there exists at least one font (unifont.tff) that contains
all glyphs. In the screenshot you can see it on the right 
(Arabic charset give the same result).
If I select the Chinese charset for Arial then the Unifont.ttf is choosen,
so I will get finally all strings shown. A confirmation is that if I select
the Unifont family on the default charset then I will get the same result.

--------------------------
- Conclusion
--------------------------
Bug 1: When creating a Font the Default charset under Wine doesnt require 
all glyphs to be shown (on Windows all glyphs are required to be shown
correctly).

Bug 2: Non of the default fonts contain all the glyphs. Some fonts contain
some glyphs and other fonts contain other glyphs. By selecting a specific
charset it is possibile to view them. But it is not possible to view all
possible characters using a single Font. Under Windows most of the fonts
contain all glyphs.

byeee
Andrea Denzler

P.S.: All files are under the standard GPL General Public License v2.

-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.



More information about the wine-bugs mailing list