Knifflige Sache, ich weiss...
Probier mal sowas
var Ws:WideString;
..
Ws:=UTF8Decode(h);
if Ws[1]=WideChar(186) then
Unterschiede: Delphi<>Lazarus TInifile und Stringfunkt
-
- Beiträge: 688
- Registriert: Mi 3. Okt 2007, 21:00
- OS, Lazarus, FPC: Linux (L 0.9.29 FPC 2.4.2)
- CPU-Target: x86_64
Das bringt leider auch keinen Erfolg! Unter Windows und MacOS habe ich das selbe Problem. Aber Ws[1] zeigt, wenn ich es in ShowMessage() stelle ein "?" an.
Wenn ich allerdings mit einem StringReplace alle ° ersetze geht's. (Meine Funktion funktioniert deshalb immernoch nicht, aber das kann ja noch werden )
Danke für die Hilfe!
Wenn ich allerdings mit einem StringReplace alle ° ersetze geht's. (Meine Funktion funktioniert deshalb immernoch nicht, aber das kann ja noch werden )
Danke für die Hilfe!
Darauf was ShowMessage anzeigt kannst du dich leider auch nicht verlassen.
Wenn dein String also UTF-8 kodiert ist, dann kann intern alles stimmen, aber ShowMessage kann mit dem UTF-8 String z.B. unter Windows trotzdem nichts anfangen.
Unter Win nimmst du dann besser direkt Winapi's MessageBoxW und machst vorher ein UTF8Decode.
Du musst einfach bei jedem Schritt genau überlegen was Sache ist.
Wie kommen die Daten rein?
Wie verarbeite ich sie intern (am einfachsten WideString)
Wie muss ich sie ans Interface senden?
Wenn du noch Zeichen > 127 in den Editor schreibst (nicht zu empfehlen) musst du auch noch wissen was der damit anstellt.
Wenn dein String also UTF-8 kodiert ist, dann kann intern alles stimmen, aber ShowMessage kann mit dem UTF-8 String z.B. unter Windows trotzdem nichts anfangen.
Unter Win nimmst du dann besser direkt Winapi's MessageBoxW und machst vorher ein UTF8Decode.
Du musst einfach bei jedem Schritt genau überlegen was Sache ist.
Wie kommen die Daten rein?
Wie verarbeite ich sie intern (am einfachsten WideString)
Wie muss ich sie ans Interface senden?
Wenn du noch Zeichen > 127 in den Editor schreibst (nicht zu empfehlen) musst du auch noch wissen was der damit anstellt.