AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Unicode Windows < Unicode

Ein Thema von Dezipaitor · begonnen am 31. Jul 2008 · letzter Beitrag vom 31. Jul 2008
Antwort Antwort
Dezipaitor

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

Unicode Windows < Unicode

  Alt 31. Jul 2008, 17: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
Dax
(Gast)

n/a Beiträge
 
#2

Re: Unicode Windows < Unicode

  Alt 31. Jul 2008, 17:27
UTF-16 verfügt über sogenannte surrogate pairs, mit denen man mehr darstellen kann als 65k:
Zitat von http://de.wikipedia.org/wiki/UTF-16:
Unicode-Zeichen außerhalb der BMP (d.h. U+10000 bis U+10FFFF), werden durch zwei 16-Bit-Wörter (engl. code units) dargestellt, die wie folgt gebildet werden [...]
edit:
Zitat von Dezipaitor:
Mich würde es auch interessieren, ob Linux nativ schon UTF-8 darstellen kann.
Ich habe hier eine en-UTF8-locale, also wahrscheinlich ja.
Vermutung wohl bestätigt:
Zitat von http://www.cl.cam.ac.uk/~mgk25/unicode.html:
UTF-8 is the way in which Unicode is used under Unix, Linux, and similar systems.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Unicode Windows < Unicode

  Alt 31. Jul 2008, 21:49
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.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Dezipaitor

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

Re: Unicode Windows < Unicode

  Alt 31. Jul 2008, 21:53
Oh danke, UCS2 auf Wikipedia schreibt was wirklich Interessantes dazu
http://de.wikipedia.org/wiki/UCS2
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz