2009-05-10 11 views
1

Wie lege ich die Zeichencodierung für eine bestimmte Tabelle fest? Beispiel:Hsqldb-Tabellencodierung

Standardmäßig ist es als ASCII codiert, aber ich würde lieber UTF-8 für diese eine Tabelle verwenden.

Antwort

1

Sind Sie sicher, dass es standardmäßig als ASCII codiert ist? Ich habe gelesen, dass es standardmäßig UTF-8 ist, obwohl ich hier Korrekturen vornehmen kann.

Wenn es sich um eine Texttabelle ist werden Sie können die Codierung für die Tabelle angeben

SET TABLE mytable SOURCE "myfile;encoding=UTF-8" 
+0

und was ist 'myfile' ???????????? – rapt

0

Das Problem ist, dass Sie alle Zeilen vor dem Import konvertieren müssen.
Dazu müssen Sie den Inhalt in eine Datei exportieren und die Datei in utf-8 konvertieren. Dann importiere es nochmal mit utf-8 Optionen.

MyPHPadmin kann es mit utf-8 Optionen importieren, (Denken Sie daran, in der Datei nach CHARSET = latin1/latin1 zu suchen).

können Sie mehr darüber lesen, es zu tun manuell sie: http://en.gentoo-wiki.com/wiki/Convert_latin1_to_UTF-8_in_MySQL

+0

Entschuldigung, ich habe nicht gesehen, dass es HyperSQL war, über das Sie gesprochen haben. Aber ich hoffe, es wird dir helfen. –

1

HSQLDB speichert sicher alle Daten in Unicode (mit Ausnahme von TEXT Tabellen, in denen Sie UTF-8 angeben müssen). Daher müssen Sie für normale Tabellen keine Zeichencodierung angeben.

+0

Sie haben nicht gesagt, wie man die Kodierung ändert. Und ich konnte es in der Dokumentation nicht finden. "HSQLDB speichert sicher alle Daten in Unicode" - es gibt viele Unicode-Kodierungen, z. UTF-8, UTF-16 - welche verwendet HSQLDB standardmäßig? – rapt

+0

Java-Zeichenfolgen sind UTF-16. Sie können diese Codierung nicht ändern. – fredt

+0

Ihre Antwort auf OP klingt wie Sie sagen, dass die Tabellen UTF-8 sind. Wie auch immer ich INSERT und SELECT zu/von einer Tabelle (von einem Java-Servlet auf Tomcat). Ich füge Daten in eine UTF-8-Java-Datei ein (das ist mein Betriebssystemstandard). Wie wird es dann korrekt eingefügt? Und dann wähle ich diese Daten und drucke auf eine Webseite, sehe aber nur '???????' ... wie man es macht? Ich habe 'httpServletResponse.setContentType ("text/html; charset = UTF-8") gesetzt; ' – rapt