UTF-8 aus AdoQuery richtig darstellen



  • marko_t schrieb:

    ...DBEdit ... DBGrid...

    Lass mich mal ins Blaue raten: Du verwendest den C++ Builder? (Wenn ja, gehört dieser Thread in das entsprechende VCL-Unterforum, und dann ist vielleicht auch noch die Version relevant, die Komponenten wurden mit der 2009er Version auf Unicode umgestellt [Und String ist dann nicht mehr wie vorher ein typedef auf AnsiString sondern UnicodeString.]).



  • jo ich hab nen 2009er borland builder.

    Kann ich das nicht irgendwo grundlegend einstellen? Thema:Charset hier falsch?



  • marko_t schrieb:

    jo ich hab nen 2009er borland builder.

    Dann arbeiten die Komponenten schonmal mit Unicode (du darfst dann aber nicht mit AnsiString sondern bitte String arbeiten). Beim C++ Builder (der schon länger nicht mehr zu Borland gehört) sind die Standard-Komponenten von Haus aus darauf (UnicodeString) eingestellt.

    Kann natürlich sein das du deine DB-Komponenten richtig anpassen musst.



  • db komponenten anpassen? wie wo?



  • Dieser Thread wurde von Moderator/in pumuckl aus dem Forum C++ in das Forum VCL (C++ Builder) verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • gibt es keine möglichkeit im head was einzubinden oder das irgendwie für das ganze projekt umzustellen?



  • marko_t schrieb:

    db komponenten anpassen? wie wo?

    Mein Verdacht (nur hänge ich da nur zum Teil drin, da unser Versuch eines Umstiegs auf einen neueren als den 2007ener C++ Builder bislang fehlgeschlagen ist, ich habe nur so etwas an einer DB-Komponente (nicht ADO) bei einigen Tests festgestellt.

    Und zwar hatte ich die gleichen Selects auf zwei verschiedene DB-Systeme losgelassen. In meinen Fall hat der Compiler dann Inkompatibilitäten in den Feldtypen gemeldet (Ich hatte die Felder erzeugen lassen). Unter Access habe ich einen Ansi-String geliefert bekommen, unter SQL Server einen Unicode-String. Je nach Datenbank kann es also sein, das unterschiedliche Typen bei den Abfragen geliefert werden, wenn die DB-Schnittstelle nicht die Typen sinnvoll vereinheitlicht.



  • also ich kann das ganze wenn es da ist formatieren:

    ShowMessage(Utf8ToAnsi(DBEdit15->Text));
    

    aber es soll gleich so angezeigt werden im DBEditfeld sowie auch im DBGrid. Dort scheiters!



  • Hallo

    Du kannst immer noch die Draw-Events des DBGrids benutzen um die Ausgabe der Texte manuell zu konvertieren.

    Umfangreicher aber flexibler wäre es, eine eigene Feldklasse für UTF8 von z.B. TField abzuleiten.

    bis bald
    akari



  • hast du dazu evtl. ein beispiel zur hand. habs bis jetzt nicht auf die reihe bekommen.


Anmelden zum Antworten