2009-05-10 14 views
1

Comment définir le codage de caractères pour une table spécifique? E.g:Codage de table Hsqldb

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

Par défaut, il est codé en ASCII mais je préfère utiliser UTF-8 pour cette table.

Répondre

1

Etes-vous sûr qu'il est codé en ASCII par défaut? D'après moi, c'est UTF-8 par défaut, même si je suis ouvert à la correction ici.

Si c'est une table de texte que vous y pouvez spécifier l'encodage pour la table

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

et qu'est-ce que 'myfile' ???????????? – rapt

0

Le problème est que vous devez convertir toutes les lignes avant l'importation.
Pour ce faire, vous devez exporter le contenu dans un fichier et convertir le fichier en utf-8. Ensuite, importez-le à nouveau avec les options utf-8. MyPHPadmin peut l'importer avec les options utf-8, (N'oubliez pas de rechercher CHARSET = latin1/latin1 dans le fichier).

Vous pouvez en savoir plus sur le point de le faire manuellement son: http://en.gentoo-wiki.com/wiki/Convert_latin1_to_UTF-8_in_MySQL

+0

Désolé, je n'ai pas vu que c'était HyperSQL dont vous avez parlé. Mais j'espère que ça t'aidera. –

1

HSQLDB stocke certainement toutes les données en Unicode (à l'exception des tables de texte où vous devez spécifier UTF-8). Par conséquent, vous n'avez pas besoin de spécifier un codage de caractères pour les tables normales.

+0

Vous n'avez pas dit après tout comment changer l'encodage. Et je ne pouvais pas le trouver dans la documentation. "HSQLDB stocke certainement toutes les données en Unicode" - il existe de nombreux codages Unicode, par ex. UTF-8, UTF-16 - lequel utilise HSQLDB par défaut? – rapt

+0

Les chaînes Java sont UTF-16. Vous ne pouvez pas changer cet encodage. – fredt

+0

Votre réponse à OP semble que vous dites que les tables sont UTF-8 .. De toute façon je fais INSERT et SELECT vers/depuis une table (par une servlet Java sur Tomcat). Je fais l'insertion de données dans un fichier Java UTF-8 (c'est mon OS par défaut). Comment est-il inséré correctement alors? Et puis je sélectionne ces données et j'imprime sur une page Web, mais je ne vois que '???????' ... comment le faire fonctionner? J'ai défini 'httpServletResponse.setContentType (" text/html; charset = UTF-8 ");' – rapt