Zum Hauptinhalt springen
Weil einfach - produktiver ist

Der Daten Spezialist

Konvertieren Sie die Daten mühelos zwischen verschiedenen Formaten ohne Programmierkenntnisse dank Visual Designer. Effizient und super einfach.
Flowheater Chart

Falsche Codepage bei SQLite3

  • Klaus-Dieter Kunde
  • Autor
  • Offline
  • Benutzer
  • Benutzer
Mehr
11 Jahre 5 Tage her #1524 von Klaus-Dieter Kunde
Falsche Codepage bei SQLite3 wurde erstellt von Klaus-Dieter Kunde
Hallo,
ich teste gerade FlowHeater V3 (Freeware 3.2.0). Dabei ist mir folgendes aufgefallen:
Beim Auswählen einer SQLite3-Datenbank als READ-Adapter wurde in den Eigenschaften des Adapters die Codepage 1252 (Ansi) eingestellt. Dies ist nicht nur für die von mir gewählte Datenbank falsch, sondern generell ungültig, da für SQLite3 nur UTF8 oder UTF16 zulässig sind.
Ein Ändern der Eigenschaft des READ-Adapters hatte bei meinen Tests keinen Effekt.
Im Anhang die von mir getestete SQLite3-Datenbank.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
11 Jahre 5 Tage her #1526 von FlowHeater-Team
FlowHeater-Team antwortete auf Falsche Codepage bei SQLite3
Hallo Herr Kunde,

die Codepage die Sie bei Datenbank Adaptern über die Eigenschaften ändern können wird lediglich auf der WRITE Seite für die Generierung von SQL INSERT bzw. UPDATE Skripts verwendet. Wenn Sie hier auf der WRITE Seite "SQL Skript generieren" ausgewählt haben werden die SQL Statements in eine Textdatei mit der hier gewählten Codepage geschrieben. Das eigentliche Lesen bzw. Schreiben erfolgt derzeit bei SQLite im FlowHeater immer mit UTF-8. Wenn Sie UTF-16 benötigen kann das relativ schnell implementiert werden.

Haben Sie Probleme mit der Darstellung von Sonderzeichen? Leider ist im Anhang keine Datenbank, deshalb kann ich mir das nicht genauer ansehen.

PS: Anlagen Bitte als ZIP Archiv anfügen.

gruß
Robert Stark

Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • Klaus-Dieter Kunde
  • Autor
  • Offline
  • Benutzer
  • Benutzer
Mehr
11 Jahre 5 Tage her #1528 von Klaus-Dieter Kunde
Klaus-Dieter Kunde antwortete auf Falsche Codepage bei SQLite3
Hallo,
zunächst mal Danke für die schnelle Antwort.
Ich habe tatsächlich Probleme mit der Anzeige der Umlaute.
Hier nochmal die Datenbank als ZIP-Archiv.

Dateianhang:

Dateiname: test.zip
Dateigröße:2 KB
Anhänge:

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
11 Jahre 5 Tage her - 11 Jahre 5 Tage her #1529 von FlowHeater-Team
FlowHeater-Team antwortete auf Falsche Codepage bei SQLite3
Hallo Herr Kunde,

die Daten liegen in Ihre SQLite Datenbank als Windows ANSI (Codepage 1252). Das Problem ist, das beim Lesen diese als UTF-8 interpretiert werden und somit die Umlaute zerschossen werden!

Es gibt derzeit nur eine Möglichkeit diese kaputten Daten auszulesen, leider geht das nur über eine Tabellenänderung. Bitte vorher Ihre SQLite Datenbank sichern! Des weiteren sollten Sie klären wer bzw. worüber (Programm) die falschen Daten in die SQLite Datenbank eingefügt werden/wurden.

Vorgehensweise:
  1. Bei jedem SQLite Feld, in dem Umlaute vorkommen können müssen Sie den Datentyp von TEXT bzw. VARCHAR auf BLOB. Am einfachsten geht das mit dem kostenlosen Tool SQLite Database Browser . Hiermit sehen Sie auch, dass auch hier die Umlaute falsch angezeigt werden. Achtung: Mit dieser Änderung können Sie auf diese Datenbank mit Ihrem bisherigen Programm danach nicht mehr zugreifen!
  2. Neue FlowHetaer Definition anlegen und die Tabelle erneut einlesen. Hinweis: SQLite Felder vom Typ BLOB werden als FlowHeater Datentyp RAW erkannt und per Default erst mal nicht aktiviert, hier müssen Sie nun manuell jedes Feld in der Feldauswahl aktiveren bzw. den Hacken setzen.
  3. Anschließend verbinden Sie die Felder der READ mit der WRITE Seite. Bei den Feldern die nun vom SQLite Typ BLOB sind müssen Sie in jedes Feld einen .NET Script Heater ziehen und unten stehenden Skript Code einfügen.

C# Skript um SQLite Windows ANSI Inhalte in UNICODE umzuwandeln
Code:
public object DoWork() { object o = InValues[0].GetValue(); if (o is byte[]) { byte [] b = (byte[])o; return Encoding.Default.GetString(b); // Encoding Default = Windows ANSI! } return "kein Byte[] Array"; }

Im Anhang befindet sich ein kleines Beispiel. Hier habe ich von Ihrer SQLite Tabelle lediglich die ID sowie das Feld Gruppe kopiert und in eine neue Tabelle t_rstest eingefügt.

Dateianhang:

Dateiname: sqlite-bin...aute.zip
Dateigröße:4 KB

gruß
Robert Stark

Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
Letzte Änderung: 11 Jahre 5 Tage her von FlowHeater-Team.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • Klaus-Dieter Kunde
  • Autor
  • Offline
  • Benutzer
  • Benutzer
Mehr
11 Jahre 4 Tage her #1536 von Klaus-Dieter Kunde
Klaus-Dieter Kunde antwortete auf Falsche Codepage bei SQLite3
Hallo Herr Stark,
erneut vielen Dank für die schnelle und umfassende Antwort.
Mein Problem ist damit gelöst. Außerdem habe ich einen guten Einblick in die Leistungsfähigkeit von FlowHeater, sowie den ausgezeichneten Support für das Produkt erhalten.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Ladezeit der Seite: 0.287 Sekunden
FlowHeater Logo

FlowHeater - Der Daten Spezialist

Effiziente Datenintegration und Transformation mit FlowHeater - Ihre Lösung für nahtlosen Datentransfer.

Rechtliches

Support & Kontakt

Kontaktinformation

Telefon:
0951 / 99339792

E-Mail:
Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein.


Copyright © 2009-2024 by FlowHeater GmbH. Alle Rechte vorbehalten.