Re: Re: création de base en UTF8

From: jl(at)machinchose(dot)com
To: "Stephane Bortzmeyer" <bortzmeyer(at)nic(dot)fr>
Cc: Jean-Louis Louër <jl(at)machinchose(dot)com>, pgsql-fr-generale(at)postgresql(dot)org
Subject: Re: Re: création de base en UTF8
Date: 2007-10-30 15:16:50
Message-ID: 43255.194.250.178.227.1193757410.squirrel@admin.lautre.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-fr-generale

>> Je lance les commandes :
>> createdb --encoding UTF8 tiny_erp
>> psql -f ./cre_tab.sql tiny_erp
>> Lors de la création d'une table, je n'ai aucun message d'erreur :
>> 2007-10-30 12:08:51 CET INFO: CREATE TABLE créera des séquences
>> implicites «adresses_id_seq» pour la colonne «serial» «adresses.id»
>> 2007-10-30 12:08:51 CET INFO: CREATE TABLE / UNIQUE créera un index
>> implicite «adresses_id_key» pour la table «adresses»
>> Lorsque je lance la commande :
>> $ psql -l tiny_erp
>> ERREUR: Séquence d'octets invalide pour le codage «UTF8» : 0xe97461
>
> Je n'arrive pas à reproduire cette bogue sur une Debian lenny toute
> neuve. Moi, ça donne :
> % psql -l tiny_erp
> List of databases
> Name | Owner | Encoding
> -----------+------------+----------
> ...
> template0 | postgres | LATIN1
> template1 | postgres | LATIN1
> tiny_erp | bortzmeyer | UTF8
> (6 rows)
> 0xe97461 = "éta" en latin-9. Bizarre, d'où ça peut bien venir ?

Un peu plus d'information. Voici mon postgresql.conf :

# -------------
hba_file = '/etc/postgresql/8.1/main/pg_hba.conf' # host-based
authentication file
ident_file = '/etc/postgresql/8.1/main/pg_ident.conf' # IDENT
configuration file
external_pid_file = '/var/run/postgresql/8.1-main.pid' # write an extra
pid file
listen_addresses = 'localhost'
port = 5432
max_connections = 100
unix_socket_directory = '/var/run/postgresql'
ssl = false
shared_buffers = 1000 # min 16 or max_connections*2, 8KB each
log_line_prefix = '%t ' # Special values:
stats_row_level = on
autovacuum = on # enable autovacuum subprocess?
lc_messages = 'fr_FR(at)euro' # locale for system error message
lc_monetary = 'fr_FR(at)euro' # locale for monetary formatting
lc_numeric = 'fr_FR(at)euro' # locale for number formatting
lc_time = 'fr_FR(at)euro' # locale for time formatting
# --------------

createdb --encoding UTF8 $BASE # ok
psql -v client_encoding=ASCII $BASE < cre_tab.sql # ok
psql -f insert_tab.sql $BASE # ERREUR :
psql:insert_tab.sql:4: ERREUR: Séquence d'octets invalide pour le codage
« UTF8 » : 0xeb7227

cat insert_tab.sql
INSERT INTO adresses (Prenom, Nom) VALUES ('Michel', 'Coluche');
INSERT INTO adresses (Prenom, Nom) VALUES ('Jean-Louis', 'Louër');

Ensuite, je converti le fichier insert_tab.sql en utf8, et là, tout va bien:
select * from adresses;
me donne le résultat attendu. Sauf que dans psql, je n'ai toujours pas
accès aux commandes '\l', '\d' ou '\du' :
Séquence d'octets invalide pour le codage « UTF8 » : 0xe97461

In response to

Responses

Browse pgsql-fr-generale by date

  From Date Subject
Next Message Stephane Bortzmeyer 2007-10-30 15:28:17 Re: création de base en UTF8
Previous Message Daniel Verite 2007-10-30 15:10:51 Re: Re: création de base en UTF8