Zitat von
rakekniven:
Übrigens wird nicht UTF16 sondern für alles UTF8 verwendet. Man kann durch explizite Vorgabe aber auch UTF16 verwenden. Somit kann es Zeichen geben die ein bis sechs Byte brauchen. Ein Umstellen der Datenbank führt nicht zu einer Verdoppelung der Größe, wie vielfach erwähnt, das
Unicode nicht 2 Byte pro Zeichen bedeutet.
Ich glaube du verwechselst hier was. Der
Unicode-Stringtyp wird auf UTF-16 basieren. Alles andere wäre performancetechnisch eine Schrottlösung. Allein die Zeile
Zitat:
The ElementSize for an UnicodeString is: 2
von
Delphi in a Unicode World Part II: New RTL Features and Classes to Support Unicode bestätigt dies. Bei UTF wäre der ElementSize 1.
Es würde keinen Sinn machen einen UTF8-Basierten Stringdatentypen in 2008 neu einzuführen wenn das unterstützte Betriebssystem mit UTF-16 arbeitet. (Wie ist da eigentlich bei Win64
)
Bei vielen Datenbanken (Interbase/
MySQL/Oracle) wird auf Transportebene UTF-8 verwendet und zwar aus dem einfachen Grund das diese Datenbanken Aufgrund der historischen Entwicklung keine andere Möglichkeit bieten da ihre Netzwerkinterfaces noch 8-Bit-characterbasiert sind. Allein MS
SQL Server (mehr
SQL Server kenn ich nicht die das so machen) und diverse Desktopdatenbanken (TurboDB, Accuracer, ...) können auf ihrer Programmierschnittstelle direkt mit UTF-16/UCS2 umgehen.
Zitat von
blackdrake:
Schade finde ich, dass in Delphi immer alles verspätet kommt.
Oft hatte das Vorteile (Einfachheit der
COM-Implementierung gegenüber z.B. C++). Jedoch hat man mit dem Kylix-Ausflug ca. 2 Jahre verloren und der .NET-Port ist ja ziemlich zurechtgestutzt worden.
Zitat von
blackdrake:
Unicode gibts ja bereits seit Windows 95 (Widestrings in den EXE Dateien) und hätte in Delphi schon viel früher implementiert werden sollen.
Der
Unicode-Support unter
Win9x/ME ist marginal. Ca 12 Funktionen sind
Unicode-Enabled (reicht aber um mit ElPack
Unicode unter
Win9x/ME ohne Installlation anbieten zu können). Viele Widestring-
Win32-
API-Funktionen existieren nur als Dummy und auch der Unicodelayer for
Win9x ist 'ne Mogelpackung (interne weiterleitung der Widestring-
API-Aufrufe auf die
Ansi-Funktionen) und bietet genau die gleiche Funtionalität welche die TNTWare-Kompos bieten.
Auch ist Win95 erschreckend langsam bei Verwendung von
Unicode (bei gleicher HW ist Win98 merklich flotter - hier auch wieder eigene App mit ElPack getestet).
Windows Vista - Eine neue Erfahrung in Fehlern.