2009-05-10 1 views
1

Как настроить кодировку символов для конкретной таблицы? Например:Кодировка таблицы Hsqldb

 
CREATE TABLE COMMENTS (
    ID INTEGER GENERATED BY DEFAULT AS IDENTITY (START WITH 0, INCREMENT BY 1) NOT NULL, 
    TXT LONGVARCHAR, 
    PRIMARY KEY (ID) 
) 

По умолчанию это в кодировке ASCII, но я предпочел бы использовать UTF-8 для этой одной таблицы.

ответ

1

Вы уверены, что код был ASCII по умолчанию? Я читал, что это UTF-8 по умолчанию, хотя я открыт для исправления здесь.

Если это таблица TEXT вы можете указать кодировку таблицы

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

и что такое 'myfile' ???????????? – rapt

0

Проблема заключается в том, что вы должны преобразовать все строки перед импортом.
Для этого вы должны экспортировать содержимое в файл и преобразовать файл в utf-8. Затем импортируйте его снова с помощью параметров utf-8.

MyPHPadmin может импортировать его с помощью параметров utf-8 (не забудьте проверить CHARSET = latin1/latin1 в файле).

Вы можете прочитать больше о делать это вручную ее: http://en.gentoo-wiki.com/wiki/Convert_latin1_to_UTF-8_in_MySQL

+0

Извините, я не видел, что это был HyperSQL, о котором вы говорили. Но я надеюсь, что это поможет вам. –

1

HSQLDB, конечно, хранит все данные в Unicode (за исключением таблиц TEXT, где вы должны указать UTF-8). Поэтому вам не нужно указывать кодировку символов для обычных таблиц.

+0

Вы все равно не сказали, как изменить кодировку. И я не мог найти его в документации. «HSQLDB, безусловно, хранит все данные в Unicode» - существует много кодировок Unicode, например. UTF-8, UTF-16, который использует HSQLDB по умолчанию? – rapt

+0

Строки Java - это UTF-16. Вы не можете изменить эту кодировку. – fredt

+0

Ваш ответ на OP звучит так, будто вы говорите, что таблицы UTF-8. В любом случае я делаю INSERT и SELECT в/из таблицы (с помощью сервлета Java на Tomcat). Я вставляю данные в файл UTF-8 Java (это моя ОС по умолчанию). Как он правильно вставлен? И затем я выбираю эти данные и печатаю на веб-страницу, но вижу только «???????» ... как заставить его работать? Я установил 'httpServletResponse.setContentType (" text/html; charset = UTF-8 ");' – rapt