AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi TnTlabel + Zeos + Firebird Encoding Probleme
Thema durchsuchen
Ansicht
Themen-Optionen

TnTlabel + Zeos + Firebird Encoding Probleme

Ein Thema von PhilmacFLy · begonnen am 24. Sep 2013 · letzter Beitrag vom 26. Sep 2013
Antwort Antwort
Benutzerbild von PhilmacFLy
PhilmacFLy

Registriert seit: 20. Jan 2008
Ort: Nürnberg
340 Beiträge
 
FreePascal / Lazarus
 
#1

TnTlabel + Zeos + Firebird Encoding Probleme

  Alt 24. Sep 2013, 10:38
Datenbank: Firebird • Version: 2.1 • Zugriff über: Zeos 7.0.5
Moin

Nachdem ich jetzt mein Projekt in Delphi 2007 mit Zeos 7.0.5 hab, dachte ich eigentlich das das mit den kyrillischen Zeichen aus der Datenbank kein Problem mehr sein sollte. Jetzt liefert mir aber meine kleine Testanwendung die ich mir geschrieben hab trotzdem nur Kauderwelsch.
Delphi-Quellcode:
Zconnection1.Connect;
ZQuery1.SQL.Text := 'Select * From Test Where ID = 2';
Zquery1.Open;
tntlabel1.Caption := Zquery1.FieldByName('text').AsWidestring;
tntedit1.Text := Zquery1.FieldByName('text').AsWidestring;
label1.Caption := Utf8toAnsi(Zquery1.FieldByName('text').Asstring);
edit1.Text := Utf8toAnsi(Zquery1.FieldByName('text').Asstring);
Zquery1.close;
Wenn ich jetzt z.B. "Türöffner" auslesen will kommt für die Tntcomponenten: türöffner für die normalen funktionierts logischer weise, wenn ich фывафыва aus der Datenbank lesen will krieg ich bei TnT фывафыва für die normalen aber nur ????????.
Edit: Auf dem russischen Windows wird dann wieder фывафыва draus.

In der ZConnection hab ich die Clientcodepage auf UTF8 und die Controlscodepage auf cCP_UTF8 eingestellt.
Das Feld das ich auslese ist: Charset UTF8 und Coallate UTF8.

Im IBExpert wird alles korrekt dargestellt.

Jetzt ist natürlich die Frage wo liegt das Problem?
Philipp N.
"Programmiern ist wie küssen:
Mann kan darüber reden, mann kann es beschreiben,
aber man weiss erst, was es bedeutet,
wenn man es getan hat"

Geändert von PhilmacFLy (24. Sep 2013 um 11:06 Uhr)
  Mit Zitat antworten Zitat
EgonHugeist

Registriert seit: 17. Sep 2011
187 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#2

AW: TnTlabel + Zeos + Firebird Encoding Probleme

  Alt 25. Sep 2013, 21:35
Soweit mir bekannt, erwarten die TNT-Controls WideString-Fields.

Somit müßtest du die ControlsCodePage auf cCP_UTf16 stellen. Dann konvertiert Zeos alles auf WideStrings/UnicodeStrings.

Für mich sind die dir gelieferten Daten völlig korrekt. Es gab/gibt da irgendwo im Zeos-Forum einen D7-hack für die TNT controls, da D7 keine TWideString/TWideMemo-Fields unterstützt und via UTF8Encode/UTF8Decode die Daten lädt. Weiterhin ist die ControlsCodePage cCP_UTF8 auch für alle Lazarus Anwender, da unter LCL alle controls von UTF8-encodierten Strings ausgehen.

Solltest du rein mit heimischer CodePage arbeiten, wäre cGet_ACP effizienter.

Bei weiteren Problem, müßte ich auch den default-Charset deiner FierBird DB wissen..

Edit: ZConnection.AutoEncodeStrings?

Geändert von EgonHugeist (26. Sep 2013 um 11:21 Uhr) Grund: wrong typo
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: TnTlabel + Zeos + Firebird Encoding Probleme

  Alt 25. Sep 2013, 22:05
Soweit mir bekannt, erwarten die TNT-Controls WideString-Fields.
Wenn mich nicht alles täuscht erwarten hier die TNT's (Konfigurierbar über Properties) UTF8-Strings.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
EgonHugeist

Registriert seit: 17. Sep 2011
187 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#4

AW: TnTlabel + Zeos + Firebird Encoding Probleme

  Alt 26. Sep 2013, 11:26
Das weiß ich nicht, Bernhard.

Habe mich gestern noch um das D2005 Problem gekümmert. Sollte jetzt wunderbar kompilieren. 7.0.6 kommt noch diese Woche, da 7.0.5 ein unschönes Memory-leak hat.


Tja, um hiermer zu sagen, müßte ich mehr Informationen haben. Default Charset der DB ist AutoEncodeStrings gesetzt oder nicht? Wie funzen nun die TNT-Controls genau? D2005 unterstützt auch nich keine TWide..-Fields. Scheint alles erst mit dem TWideDataSet seit D2006 dabei zu sein. Bug-Tracking ohne verfügbare Compiler ist etwas frustrierend..
  Mit Zitat antworten Zitat
Benutzerbild von PhilmacFLy
PhilmacFLy

Registriert seit: 20. Jan 2008
Ort: Nürnberg
340 Beiträge
 
FreePascal / Lazarus
 
#5

AW: TnTlabel + Zeos + Firebird Encoding Probleme

  Alt 26. Sep 2013, 13:00
Soweit mir bekannt, erwarten die TNT-Controls WideString-Fields.

Somit müßtest du die ControlsCodePage auf cCP_UTf16 stellen. Dann konvertiert Zeos alles auf WideStrings/UnicodeStrings.
Danke das wars!
Philipp N.
"Programmiern ist wie küssen:
Mann kan darüber reden, mann kann es beschreiben,
aber man weiss erst, was es bedeutet,
wenn man es getan hat"
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:35 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