![]() |
Konvertiere ü zu ü - gibt es da was?
Moin, Moin.
Ich erhalte von einer anderen (alten) Anwendung Strings, die z.B. das in der Überschrift angeführte ü enthalten können (oder ö, oder ...). Die Strings möchte ich in meiner (Delphi7-)Anwendung natürlich möglichst korrekt anzeigen. Da das Grundthema mir bisher völlig fremd geblieben ist, helfe ich mit derzeit sehr stümperhaft mit einer Reihe von StringReplace() um z.B. ö in ö umzuwandeln. Gibt es für Delphi7 auch eine fachmännische Lösung? |
AW: Konvertiere ü zu ü - gibt es da was?
|
AW: Konvertiere ü zu ü - gibt es da was?
Oder
Delphi-Quellcode:
wenn es denn tatsächlich UTF 8 sein sollte, was ich bei einer alten Anwendung bezweifle.
UTF8ToAnsi('ö');
Alte Anwendungen könnten aber auch noch den OEM-Zeichensatz nutzen, dann wäre aber wohl eher sowas angesagt:
Delphi-Quellcode:
function OemToAnsi(const S: string): string;
begin SetLength(Result, Length(S)); if S <> '' then OemToAnsiBuff(@S[1], @Result[1], Length(S)); end; function AnsiToOem(const S: string): string; begin SetLength(Result, Length(S)); if S <> '' then AnsiToOemBuff(@S[1], @Result[1], Length(S)); end; |
AW: Konvertiere ü zu ü - gibt es da was?
OEM ist och nur 'nen Single-Char-Zeichensatz und hier hat das ö zwei Zeichen, die stark nach UTF-8 ausshen ... Umlaute fangen da fast immer mit à an.
Sieht eher nach UTF-8 aus. |
AW: Konvertiere ü zu ü - gibt es da was?
Es handelt sich bei der Sequenz ü tatsächlich um die ANSI-Darstellung einer UTF-8 Sequenz für das kleine ü.
ü entspricht Hex C3 BC oder binär 1100 0011 1011 1100. Die 110 leiten eine 2-Byte UTF-8 Sequenz ein, deren zweites Byte mit 10 beginnt. Die restlichen Bits verbleiben mit 00011 11 1100, was auf Bytes formatiert 00 1111 1100 oder Hex FC entspricht, also dem kleinen ü im Windows Zeichensatz 1252. Mit
Delphi-Quellcode:
solltest du bei Delphi 7 also auf dem richtigen Weg liegen.
UTF8ToAnsi
|
AW: Konvertiere ü zu ü - gibt es da was?
Moin, Moin.
Mit UTF8ToAnsi() werden alle bisher vorliegenden "Sonderfälle" korrekt umgewandelt; damit habe ich die erhoffte schnelle und unkomplizierte Lösung und kann mich wieder den mir wesentlichen Dingen zuwenden. Vielen Dank für die Antworten. :P |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:11 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