![]() |
Unicode Windows < Unicode
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 ![]() 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. :D |
Re: Unicode Windows < Unicode
UTF-16 verfügt über sogenannte surrogate pairs, mit denen man mehr darstellen kann als 65k:
Zitat:
Zitat:
Vermutung wohl bestätigt: Zitat:
|
Re: Unicode Windows < Unicode
AFAIK wird auf API-Seite bis NT 4.0 (oder wars W2K) UCS2 verwendet und ab der nächsten Version UTF-16 so das auch klingonisch kein Problem darstellt.
|
Re: Unicode Windows < Unicode
Oh danke, UCS2 auf Wikipedia schreibt was wirklich Interessantes dazu
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:46 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz