![]() |
Datenbank: SQLite • Version: 3.3.7 • Zugriff über: libsql (v0.64)
SQLite-Datenbank nimmt keine Umlaute an (komische Zeichen)
Hallo,
und zwar habe ich das folgende Problem, dass wenn ich ein Query mache und einen Text in die Datenbank eintrage, welcher Umlaute, d.h. ü, ö, ä enthält, so wird nicht genau dieses Zeichen dort gespeichert, sondern zwei andere Zeichen, die dem Buchstaben ö, ü, ä entsprechen. Das will ich aber nicht haben! Ich will Umlaute und nicht irgendetwas anderes gepspeichert haben. In der Komponenten libsql gibt es die Einstellunge Unicode : Boolean - wenn ich es auf True setze, dann wird scheinbar im Unicode-Format gespeichert und wenn ich es auf False setze im UTF-8-Format. Nur werden die Umlaute bei beiden Einstellungen nicht richtig gespeichert -> komische Zeichen... Ich hoffe ihr könnt mir weiterhelfen - ich bin am verzweifeln. So schwer kann das doch nicht sein, oder?! mfg shark |
Re: SQLite-Datenbank nimmt keine Umlaute an (komische Zeiche
Was für einen Zeichensatz? Welche Komponenetn (sind diese Unicodefähig)?
|
Re: SQLite-Datenbank nimmt keine Umlaute an (komische Zeiche
Komponenten? Ich nutze halt SQLite, davon die DLL für die Embedded-Datenbank (Version 3.3.7). Den Zugriff nehme ich mit libsql vor (Version 0.64). libsql stellt mir die Klasse TLiteDB zur Verfügung, über die ich die DLL einbinden, Querys versenden und sonstige Sachen machen kann. Dort kann ich auch die oben genannte Einstellnugen "Unicode : Boolean" vornehmen (True -> Unicode; False -> UTF-8), nur ändert sich durch diese Einstellungen nichts.
Einen String speichere ich so:
Delphi-Quellcode:
Nur es wird leider kein Umlaut so gespeichert wie es sein sollte...
db.Query('INSERT INTO testtable (testtext) VALUES (''öüäasd'');')
|
Re: SQLite-Datenbank nimmt keine Umlaute an (komische Zeiche
Ich vermutete das es im Programm falsch angezeigt werden würde und meinte die Anzeigekomponenten.
|
Re: SQLite-Datenbank nimmt keine Umlaute an (komische Zeiche
Das Problem hat sich gerade gelöst. Weiß zwar nicht wirklich warum, aber auf einmal hat es geklappt... :gruebel:
|
Re: SQLite-Datenbank nimmt keine Umlaute an (komische Zeiche
Hallo,
soweit ich weiß arbeitet sqlite intern im UTF-8 Format. An deiner Stelle würd ich mal probieren, Unicode auf False zu setzen und alle Strings die rein bzw. rausgehen ins UTF-8 Format bzw. zurück ins Ansi Format zu konvertieren. D.h. aus
Delphi-Quellcode:
wird:
db.Query('INSERT INTO testtable (testtext) VALUES (''öüäasd'');')
Delphi-Quellcode:
Das Ergebnis eines SELECT statements muss dann mit
db.Query(AnsiToUTF8('INSERT INTO testtable (testtext) VALUES (''öüäasd'');'))
Delphi-Quellcode:
zurückkonvertiert werden.
UTF8ToAnsi()
Gruß zaphod |
Re: SQLite-Datenbank nimmt keine Umlaute an (komische Zeiche
Zitat:
Gruß zaphod |
AW: SQLite-Datenbank nimmt keine Umlaute an (komische Zeichen)
Vielen Dank an Zapod,
ich stand vor dem gleichen Problem mit den "umgewandelten" Zeichen.. das passiert aber bei allen Zeichen des erweiterten Zeichensatzes ® Ø usw. selbst der wirklich klasse "SQLite Administrator" (kann ich jedem nur empfehlen der mit SQLITE3 Datenbanken zu tun hat und ist kostenlos!), hat das nicht korrekt angezeigt... ![]() nun konvertiere ich beim Laden mittels Callback-Routine einfach das Datenfeld vor Anzeige zurück mittels UTF8ToAnsi() und es klappt.. Super! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz