[gelöst] Lazarus 1.8.4 FPC 3.04 Zeichencodierung

Für Fragen von Einsteigern und Programmieranfängern...

[gelöst] Lazarus 1.8.4 FPC 3.04 Zeichencodierung

Beitragvon Flenser » 8. Nov 2018, 16:48 [gelöst] Lazarus 1.8.4 FPC 3.04 Zeichencodierung

Ich habe eine Problem mit dem FPC 3.0.4, welches ich mit dem FPC 2.6.4 noch nicht hatte. So weit ich mir es erlesen habe, liegt es an den Änderungen im Umgang mit UTF8, Ansi und Co.

Ich arbeite mit einer Accessdatenbank, die auch weiterbenutzt werden soll.

Vor FPC 3.0.4 wurden mit ANSIToUTF8 die Sonderzeichen und Umlaute umgewandelt, so dass sie richtig dargestellt wurden:
Bauort_DBText.visible := true;
Bauort_DBText.caption:= ANSIToUTF8(Bauort_DBText.caption); => im Formular wurden im DBText Umlaute dargestellt


Mit FPC 3.0.4 hat ANSIToUTF8 oder andere UTF8 Befehle (ich stochere da im Nebel) keine Auswirkung mehr. Sonderzeichen werden mit Fragezeichen dargestellt.

Ich habe in den Projekteinstellungen UTF8 deaktiviert (-dDisableUTF8RTL) und bei den Dateieinstellungen die Zeichenecodierung auf Ansi(cp1252) geändert. Das hatte das Umlauteproblem bei der Übergabe
an Word gelöst.

Was ich absolut nicht verstehe ist, warum mit
Bauort:= Bauort_DBText.Field.text;
varTmp:=(Bauort);
varBookmark.Range.Text := varTmp;


in Word die Umlaute richtig geschrieben werden, d.h. es taucht statt des Fragezeichens das richtige Sonderzeichen auf, OBWOHL es aus dem DBText ausgelesen wird, welchen im Formular nur Fragezeichen anzeigt.
Das Sonderzeichen muss da dann doch irgendwie richtig hinterlegt sein.

Lange Rede, kurzer Sinn: Wie kann ich im DBText mit FPC 3.0.4 Sonderzeichen richtig anzeigen lassen?
Wie könnte ich alternativ mit dem Umweg über ein Label die Sonderzeichen richtig anzeigen lassen?
Zuletzt geändert von Flenser am 9. Nov 2018, 08:20, insgesamt 1-mal geändert.
Flenser
 
Beiträge: 2
Registriert: 28. Okt 2014, 12:49

Beitragvon VB_Lazarus » 8. Nov 2018, 18:32 Re: Lazarus 1.8.4 FPC 3.04 Zeichencodierung

Hallo,

ich habe in meiner Access Datenbank es wie folgt gelöst:
Code: Alles auswählen
 
                  Text_von_Control_umwandeln := UTF8ToWinCP(aText);
                  Text_nach_Control_umwandeln := WinCPToUTF8(aText);
 


Die 1. Funktion nutze ich einen Text von einem TEdit zu einem Datenbankfeld umzuwandeln.
Die 2. Funktion nutze ich genau für die umgekehrte Aktion (von DB -> TEdit).

Gruß
VB_Lazarus
 
Beiträge: 69
Registriert: 23. Dez 2010, 19:10
OS, Lazarus, FPC: Windows 10 64bit / Windows 7 32bit, L 1.6.4 32bit, FPC 3.0.2 32bit | 
CPU-Target: 32Bit
Nach oben

Beitragvon Flenser » 9. Nov 2018, 08:17 Re: Lazarus 1.8.4 FPC 3.04 Zeichencodierung

Vielen Dank, es hat funktioniert...
Flenser
 
Beiträge: 2
Registriert: 28. Okt 2014, 12:49

• Themenende •

Zurück zu Einsteigerfragen



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron
porpoises-institution
accuracy-worried