![]() |
AW: UTF-8 nach ASCII (die 1000ste)
Wäre es nicht eigentlich sinnvoll, wenn ein Encoding einen String entgegennimmt und ein byte-Array zurück gibt?
Wenn da wieder ein String rauskommt, ist das doch eigentlich wieder Interpretationssache, was da drin steht. Also string + Zeichnsatz = Bytes Und Bytes + Zeichensatz = String |
AW: UTF-8 nach ASCII (die 1000ste)
Zitat:
Es kommt darauf an welche Codierung die gewählte Schrift unterstützt. Gruß K-H |
AW: UTF-8 nach ASCII (die 1000ste)
Um die ganzen Verwirrungen (hoffentlich) ein wenig aufzudecken:
Ich habe einen UTF-8 kodierten String, als Beispiel "BÜCHER". Dieser muss in einen DOS-Zeichensatz umgewandelt werden, damit ich für das große "Ü" in Codepage 437 das Hex Zeichen 9A bzw. (extendet) ASCII-Zeichen 154 bekomme. Wenn man dieses in einem Editor als ANSI anzeigt, wird es als "š" dargestellt, in UTF-8 als "x9A". |
AW: UTF-8 nach ASCII (die 1000ste)
Als ich das letzte mal nachgesehen hatte (vor 1 Minute) war das große Ü ASCII 220 bzw xDC... auch in der Codepage 437.
In UTF-8 ist das U+00DC oder eben c39c. Kurz: Keine Deiner Zahlen entspricht in den benannten Codetabellen dem Ü. Da läuft etwas konzeptionell falsch. Sherlock |
AW: UTF-8 nach ASCII (die 1000ste)
Ich habe in der verlinkten Tabelle nachgesehen:
![]() |
AW: UTF-8 nach ASCII (die 1000ste)
d'uh... hab die Tabelle falsch gelesen :stupid:
Ich habe auch mal UTF8 nach ASCII konvertieren müssen, bei mir sahen die Strings aber so aus: 'Gl\xC7\, cknerin' -> 'Glöcknerin' Das kann man dann mit ![]() :gruebel: Sherlock |
AW: UTF-8 nach ASCII (die 1000ste)
Zitat:
Gruß K-H |
AW: UTF-8 nach ASCII (die 1000ste)
Das habe ich in
![]() |
AW: UTF-8 nach ASCII (die 1000ste)
Delphi liefert doch alles mit:
Declariere einen Stringtyp für die gewünschte Codepage:
Delphi-Quellcode:
einfach zugewiesen und glücklich sein.type oemString = type Ansistring(437) ; function StringtoOem(const Value : string) : oemString; begin result := Value; end; Ergebnis : OEM Decimal 66 154 67 72 69 82 HEX $42 $9A $43 $48 $45 $52 ANSI Decimal 66 220 67 72 69 82 HEX $42 $DC $43 $48 $45 $52 |
AW: UTF-8 nach ASCII (die 1000ste)
Wenn ich das ganze mit einem kleinen Testprogramm versuche, bekomme ich leider ein anderes Ergebnis (Hexadezimal DC statt 9A):
Delphi-Quellcode:
program Project1;
{$APPTYPE CONSOLE} {$R *.res} uses System.SysUtils; type oemString = type Ansistring(437) ; var f: TextFile; ein: string; aus: oemString; function StringtoOem(const Value : string) : oemString; begin result := Value; end; begin AssignFile(f, 'c:\temp\kodier.txt'); Rewrite(f); ein := 'Ü'; aus := StringtoOem(ein); writeln(f, aus); CloseFile(f); end. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:36 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