2013-10-16 7 views
5

Ich benutze Java Swing-Anwendung, die Unicode-String in jtable ziehen benötigt.Ist es möglich, Unicode-Daten in der SQLITE-Datenbank zu speichern? Wenn ja, welche SQLite unterstützt Unicode .. Ich brauche freie sqlite nicht die Premium ..SQLite-Datenbank unterstützt Unicode-Daten

+6

Auf welche * premium * Version beziehen Sie sich? SQLite ist eine einzige Open-Source-Bibliothek –

+1

Tatsächlich ist SQLite [in der Public Domain] (https://sqlite.org/copyright.html). Sie können * professionellen Support erhalten und ["Proprietäre SQLite-Erweiterungen"] (https://sqlite.org/support.html) kaufen. –

+0

Sie sollten einen Code (vollständiges laufendes Beispiel) bereitstellen, in dem Sie versuchen, Daten in Ihre Datenbank zu schreiben und daraus zu lesen. Wahrscheinlich wird das Problem dann offensichtlich sein. –

Antwort

12

SQLite speichert Textdaten immer als Unicode unter Verwendung der Unicode Codierung, die beim Erstellen der Datenbank angegeben wurde. Der Datenbanktreiber selbst sorgt dafür, dass die Daten als Unicode-Zeichenfolge in der von Ihrer Sprache/Plattform verwendeten Codierung zurückgegeben werden.

Wenn Sie Konvertierungsprobleme haben, hat Ihre Anwendung entweder versucht, eine ASCII-Zeichenfolge zu speichern, ohne sie in Unicode zu konvertieren, oder Sie haben versucht, einen Wert zu lesen und eine Konvertierung zu erzwingen.

SQLite verwendet eine Art von dynamic typing, wobei jeder Wert mit einer bestimmten Speicherklasse gespeichert wird. Der Typ einer Spalte gibt die Affinität an oder wie der Wert behandelt wird. Beispiel:

Eine Spalte mit NUMERIC-Affinität kann Werte enthalten, die alle fünf Speicherklassen verwenden. Wenn Textdaten in eine numerische Spalte eingefügt wird, wird die Speicherklasse des Textes zu INTEGER konvertiert oder REAL

Es gibt fünf Speicherklassen, NULL, GANZ, DEZ, TEXT, BLOB. TEXT speichert String-Daten mit der für die Datenbank angegebenen Unicode-Codierung (UTF-8, UTF-16BE oder UTF-16LE).

Mit welchem ​​spezifischen Problem sind Sie konfrontiert, oder ist das eine allgemeine Frage?

+6

Ich möchte einige chinesische Schriftzeichen in meine Datenbank einfügen..aber wenn ich sie in sqlite einfüge, wird sie als '?' Geändert. Welche Art von Kodierung sollte ich verwenden, um die chinesischen, japanischen Sprachen zu unterstützen. – user2881444

1

SQLite verwendet immer Unicode-Zeichenfolgen.

+2

danke..aber fügt es chinesische Schriftzeichen ein? Charakter wird wie geändert? – user2881444