Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Ä, Ö, Ü trotz Utf8ToAnsi nicht richtig (https://www.delphipraxis.net/129738-ae-oe-ue-trotz-utf8toansi-nicht-richtig.html)

napsterxx 24. Feb 2009 21:40


Ä, Ö, Ü 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?

shmia 25. Feb 2009 09:14

Re: Ä, Ö, Ü trotz Utf8ToAnsi nicht richtig
 
ich würde erstmal einen kleinen Test machen:
Delphi-Quellcode:
ShowMessage(Utf8ToAnsi(AnsiToUtf8('Umlaute: äöüÄÖÜß')));
Nach der doppelten Wandlung sollte ja der Ursprungstext wieder herauskommen.
Und dann besteht der Verdacht, dass dein Ausgangsstring nicht (oder nicht korrekt) mit UTF-8 kodiert ist.

himitsu 25. Feb 2009 09:19

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:

Bernhard Geyer 25. Feb 2009 09:28

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

napsterxx 25. Feb 2009 10:26

Re: Ä, Ö, Ü trotz Utf8ToAnsi nicht richtig
 
Delphi-Quellcode:
Listbox.Lines.Add(UTF8Decode(sTitle));
Ich muss UTF8Decode verwenden da mein Delphi noch nicht UTF8ToString kennt. Das Problem nun, ich erhalte
Zitat:

ä
so etwas, jedoch nicht ä. Selbst wenn ich noch 80 mal UTF8Decode da vor schreibe, und wenn ich dann UTF8ToAnsi benutze wirds noch schlimmer.

napsterxx 26. Feb 2009 11:02

Re: Ä, Ö, Ü trotz Utf8ToAnsi nicht richtig
 
*push*

himitsu 26. Feb 2009 11:08

Re: Ä, Ö, Ü trotz Utf8ToAnsi nicht richtig
 
ist dieses "Ftär" nun in sTitle, oder das was nach UTF8Decode rauskommt?

napsterxx 26. Feb 2009 11:26

Re: Ä, Ö, Ü trotz Utf8ToAnsi nicht richtig
 
Das ist in sTitle standartmäßig, jetzt bin ich soweit, das ich das erhalte:
Fär ....

himitsu 26. Feb 2009 11:54

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:
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'
Sowas zum Dekodieren wäre ja nicht unbedingt die optimalste Lösung:
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 15:53 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz