![]() |
Ä, Ö, Ü trotz Utf8ToAnsi nicht richtig
Also ich lese RSS News aus und erhalte dauert:
Ftär die Bahnmitarbeiter ... Ich verwende aber Utf8ToAnsi, warum geht es dann nicht? |
Re: Ä, Ö, Ü trotz Utf8ToAnsi nicht richtig
ich würde erstmal einen kleinen Test machen:
Delphi-Quellcode:
Nach der doppelten Wandlung sollte ja der Ursprungstext wieder herauskommen.
ShowMessage(Utf8ToAnsi(AnsiToUtf8('Umlaute: äöüÄÖÜß')));
Und dann besteht der Verdacht, dass dein Ausgangsstring nicht (oder nicht korrekt) mit UTF-8 kodiert ist. |
Re: Ä, Ö, Ü trotz Utf8ToAnsi nicht richtig
ist "Ftär" das was rauskommt, oder reingeht?
und soll das "für" heißen? (wenn ja, dann sieht es nicht unbedingt wie UTF8 aus, es sei denn du wandelst einen UTF8-String nochmals in einen UTF8-String :angel2: ) Ich dachte Utf8ToAnsi (von Delphi) gibt einen Leerstring raus, wenn die Umwandlung nicht klappt. :gruebel: |
Re: Ä, Ö, Ü trotz Utf8ToAnsi nicht richtig
Hier wird irgendwo etwas zu viel "Ver-UTF8"
Utf8ToString(Fär) -> FTär Utf8ToString(FTär) -> FTär Utf8ToString(FTär) -> FTär Utf8ToString(FTär) -> FTär |
Re: Ä, Ö, Ü trotz Utf8ToAnsi nicht richtig
Delphi-Quellcode:
Ich muss UTF8Decode verwenden da mein Delphi noch nicht UTF8ToString kennt. Das Problem nun, ich erhalte
Listbox.Lines.Add(UTF8Decode(sTitle));
Zitat:
|
Re: Ä, Ö, Ü trotz Utf8ToAnsi nicht richtig
*push*
|
Re: Ä, Ö, Ü trotz Utf8ToAnsi nicht richtig
ist dieses "Ftär" nun in sTitle, oder das was nach UTF8Decode rauskommt?
|
Re: Ä, Ö, Ü trotz Utf8ToAnsi nicht richtig
Das ist in sTitle standartmäßig, jetzt bin ich soweit, das ich das erhalte:
Fär .... |
Re: Ä, Ö, Ü trotz Utf8ToAnsi nicht richtig
"Ftär" entspricht einem 3-fachen UTF8 von "Ftär"
da wäre es wohl besser mal rauszubekommen warum das 3-mal codiert wurde, als zu versuchen es richtig zu dekodieren. :gruebel:
Delphi-Quellcode:
Sowas zum Dekodieren wäre ja nicht unbedingt die optimalste Lösung:
S := 'Ftär'; // S = 'Ftär'
S := UTF8Decode(S); // S = 'Ftär' S := UTF8Decode(S); // S = 'Ftär' S := UTF8Decode(S); // S = 'Ftär' S := UTF8Decode(S); // S = '' << Fehler: war kein UTF8 S := UTF8Decode('Fär'); // S = 'Fär'
Delphi-Quellcode:
Function TryUTF8Decode(S: UTF8String): WideString;
Begin Result := S; While UTF8Decode(S) > '' do Begin Result := UTF8Decode(S); S := Result; End; End; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:48 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