Einzelnen Beitrag anzeigen

Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#1

Unicode Windows < Unicode

  Alt 31. Jul 2008, 18:20
hi

Das Problem beschäftigt mich schon lange. Wie jeder vllt heutzutage weiß, gibt es mittlerweile Unicode. Es ermöglicht eine Menge mehr Zeichen darzustellen. Dafür gibt es die UTF-x Formen, wobei x eine Zahl, wie 8, 16, 32 darstellt und die Bitgröße eines Zeichens angibt. UTF-8 ist dagegen variabel und kann je nach Zeichen im String unterschiedliche Platzbedürfnisse haben. Dafür ist es sehr platzsparsam.
Seit Windows NT ist Unicode in der API enthalten. Was nicht jeder weiß ist, dass MS sich damals für UTF-16 entschieden hat. Das macht dann etwa 65000 Zeichen, was damals jeder Programmierer für ausreichend erachtet hat, um alle Sprachen der Welt locker unterzubringen (siehe Charles Petzold Windows Programmierung). Heute haben wir über 100.000 Zeichen über Unicode zugeordnet und es werden immer mehr.
Mittlerweile ist UTF-8 wohl für die meisten InternetBrowser zum Standard geworden, wenn man Wikipedia/Unicode Glauben schenken darf.

Nun die Frage:
Wie schaffen es Windowsbrowser UTF-8 darzustellen, wenn z.b. die Win32-API DrawTextW-Funktion und Andere nur UTF-16 können? Ich muss darauf Aufmerksam machen, dass die Unterstützung von UTF-8 bedeutet, dass es auf jeden Fall möglich ist Zeichen jenseits der Nummer 65000 darzustellen!
D.h. eine Anwendung, die UTF-8 unterstützt kann nicht DrawTextW verwenden, da ein Zeichen mit der Nummer 100.000 falsch dargestellt werden würde.
Also wie funktioniert dies programmatisch?

Mich würde es auch interessieren, ob Linux nativ schon UTF-8 darstellen kann.

THX

PS.
Delphi unterstützt nur UTF-16. IMHO wohl solange bis Windows UTF-8 nativ beherscht. Also altägyptisch wird man lange nicht sehen können.
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat