Кодировка таблицы 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 для этой таблицы.


person Community    schedule 10.05.2009    source источник


Ответы (3)


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

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

SET TABLE mytable SOURCE "myfile;encoding=UTF-8"
person Glen    schedule 25.05.2009

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

person fredt    schedule 02.01.2012
comment
Вы ведь не сказали как поменять кодировку. И я не мог найти его в документации. HSQLDB, безусловно, хранит все данные в Unicode — существует множество кодировок Unicode, например. UTF-8, UTF-16 — какой из них использует HSQLDB по умолчанию? - person rapt; 18.05.2017
comment
Строки Java имеют кодировку UTF-16. Вы не можете изменить эту кодировку. - person fredt; 18.05.2017
comment
Ваш ответ на OP звучит так, как будто вы говорите, что таблицы UTF-8. В любом случае я делаю INSERT и SELECT в/из таблицы (с помощью сервлета Java на Tomcat). Я вставляю данные в файл Java UTF-8 (это моя ОС по умолчанию). Как он тогда правильно вставляется? А потом я выбираю эти данные и печатаю на веб-страницу, но вижу только ???????... как заставить это работать? Я установил httpServletResponse.setContentType("text/html; charset=UTF-8"); - person rapt; 19.05.2017
comment
Задайте свой вопрос. - person fredt; 19.05.2017
comment
Я спросил на самом деле .. все еще изучаю это. - person rapt; 19.05.2017

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

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

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

person Diblo Dk    schedule 28.12.2011
comment
Извините, я не видел, что вы говорили о HyperSQL. Но я надеюсь, что это поможет вам. - person Diblo Dk; 28.12.2011