AGB  ·  Datenschutz  ·  Impressum  







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

UTF8 nach Unicode

Ein Thema von backdraft · begonnen am 7. Sep 2019 · letzter Beitrag vom 18. Sep 2019
 
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.120 Beiträge
 
Delphi 2009 Professional
 
#6

AW: UTF8 nach Unicode

  Alt 8. Sep 2019, 19:52
Delphi Rio nutzt doch als Typ für string einen WideString oder auch UnicodeString. Du schreibst, das ist UTF-16.
UTF-16 hat aber doch ggf. mehr als 2 Byte pro Zeichen.
Und WideString sind doch immer fest 2 Byte pro Zeichen, oder irre ich?
Bin jetzt eher verwirrt.
WideString ist ein Windows-Typ und Windows ab 2000 definiert WideStrings als UTF-16LE (Vorgänger-NTs: UCS-2LE). Sie kodieren jedes Zeichen mit 2 oder 4 Bytes, da man die 1.112.064 Codepunkte nicht mit 2 Bytes darstellen kann.

Bei den 2-Byte-Zeichen ist UTF-16 dasselbe wie UCS-2 (und UTF-8 dasselbe wie CESU-8), Zeichen darüber werden durch Surrogates kodiert, die sich an der Stelle 0xD800 bis 0xDFFF in der Ebene 0 (BMP) befinden. Die Surrogates sind keine Codepunkte und haben deshalb in UTF-8 nichts zu suchen. Der Versuch, Surrogates wie Codepunkte zu behandeln führt zu CESU-8, das Zeichen mit 1, 2, 3 oder 6 Byte kodiert.

Bezüglich CESU-8. Was erzeugt TEncoding.UTF8 in Delphi denn?
UTF-8.

Ich brauche auf jeden Fall einen Konverter von einem String aus Delphi 10.3 und einem XML UTF-8 Datenstrom.
Komm ich das mit dem CESU-8 zurecht?
Legt eine Software eine UTF-8-Eingabe zunächst als UTF-16 im Speicher ab und führt sie keine gesonderte Prüfung durch, unterstützt sie auch CESU-8.
Es gibt Software, die behauptet, UTF-8 zu unterstützen, meint aber CESU-8. Jeweils andere Programme unterstützen nur die BMP, sodass die Frage egal ist. Teilweise stürzen Programme auch ab, wenn man das jeweils andere eingibt.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
 


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 07:17 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