[win] DrawText en Koreaans/andere talen met standaard fonts

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Adion
  • Registratie: Januari 2001
  • Laatst online: 13:55
Dankzij het populaire nummer Gangnam Style kwam ik er net achter dat de applicatie waar ik aan werk problemen heeft met het weergeven van Koreaanse karakters (강남스타일)
Zonder er echt over nagedacht te hebben deden onder andere Chinese en Thaise karakters het wel zonder problemen.

Na wat proberen blijkt het met het font 'Arial Unicode MS' wel prima mogelijk te zijn om ook koreaanse karakters weer te geven.
Het vreemde is echter dat voor zover ik kan zien 'Arial' bijvoorbeeld, maar ook veel andere fonts geen Chinese karakters bevatten. (lijkt ook onwaarschijnlijk gezien het verschil in bestandsgrootte tussen het Arial en Arial Unicode MS font)
Ik heb echter niet kunnen vinden hoe DrawText er dan toch voor zorgt dat Chinese karakters worden weergegeven. Laad deze functie automatisch een ander font in en gebruikt dit, en zoja, welk font dan, en waarom gebeurd dit niet voor Koreaans?

Verder vind ik het ook vreemd dat dit probleem zich daardoor niet lijkt te beperken tot mijn eigen applicatie, maar ook de url-balk in chrome, bestandsnamen in explorer en verscheidene tekstinvoervakken in software kunnen geen koreaans weergeven.
Op andere plekken gaat het echter wel goed, terwijl het er op lijkt dat daar toch ook gewoon Arial bijvoorbeeld gebruikt word, zoals in dit invoervak in html-pagina's in chrome, het zoekveld in de startknop bij windows 7, en het tekstvak in Skype.

Ik ben er dus wel een beetje benieuwd naar waarom het op deze plekken wel goed gaat.

VirtualDJ 2024 - Fast Image Resizer - Instagram


Acties:
  • 0 Henk 'm!

  • Adion
  • Registratie: Januari 2001
  • Laatst online: 13:55
Unicode is voor zover ik weet goed geimplementeerd, UTF16 strings worden aan de DrawTextW variant gevoerd, en exact dezelfde functie oproepen (alleen dus met een verschillend font) levert het juiste resultaat.
Ik denk dus niet dat het probleem aan de encoding ligt.

VirtualDJ 2024 - Fast Image Resizer - Instagram


Acties:
  • 0 Henk 'm!

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 18-06 11:36
Wat je zoekt heet "Font Fallback" of "Font linking". DrawText is een GDI functie, en gebruikt daarom de
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink
registry key als font link setting. Op jouw machine bevat die lijst blijkbaar wel Chinese, maar geen Koreaanse fonts.

Dat andere applicaties beter werken kan te maken hebben met Uniscribe, een betere text renderer in Windows.

[ Voor 15% gewijzigd door MSalters op 13-03-2013 12:02 ]

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein