by Michael S. Kaplan, published on 2007/06/08 01:14 -04:00, original URI: http://blogs.msdn.com/b/michkap/archive/2007/06/07/3155261.aspx
(I am abandoning the previous attempt to use a volleyball metaphor, started in this post!)
So now, as part of the set, I'll bring up another problem along the same lines. The recent question was:
We have a service which runs in the context of the network service. It calls GDI functions to render a text into a bitmap (by calling DrawText). In Vista, if the text contains Chinese characters, I am getting squares in the rendered bitmap. In W2K3, it works fine. There has been no change in the service as such.
Looks like the network service cannot access the code pages required. I found an option in Vista to “copy the language packs to system accounts like network service”. Even “copying” that does not help.
It is not a code page problem, nor is it a language pack problem. And all language support is always installed in Vista....
In the end it turned out to be due to the fact that the font that was being used was Arial. after switching to one of the UI fonts like Tahoma or Microsoft Sans Serif or Segoe UI or whatever, then everything worked.
Any thoughts on this one? :-)
This post brought to you by 倔 (U+5014, a CJK Ideograph)
# Mike Dimmick on 8 Jun 2007 5:48 AM:
In one case I had, some other application had dumped its own copy of whatever font I was having the trouble with into the fonts folder, which was hugely out-of-date and missing a great deal of the glyphs and layout tables from the version of the font that came with the OS.
Using the Font Properties extension from http://www.microsoft.com/typography/TrueTypeProperty21.mspx (sadly not supported on Windows Vista as far as I can see) you can see the font version information - the version of Arial on my Windows XP machine is version 3.00, modified 18 October 2002. According to the CharSet/Unicode tab it supports:
Latin Extended A
Arabic Presentation Forms-A
Arabic Presentation Forms-B
Chinese is not on that list. That said, Tahoma and Microsoft Sans Serif don't contain CJK glyphs either.
I'd immediately question what's going on if you've got a service using GDI, although I suppose it could be generating bitmaps for a client rather than showing them on the display! Services with UI are BAD (and very limited in Windows Vista and later).
DrawText doesn't do font linking on its own, does it?
go to newer or older post, or back to index or month or day