Skip site navigation (1) Skip section navigation (2)

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 (view raw or flat)
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

pgsql-fr-generale by date

Next:From: Stephane BortzmeyerDate: 2007-10-30 15:28:17
Subject: Re: créatio?==?iso-8859-1?Q?n de base en UTF8
Previous:From: Daniel VeriteDate: 2007-10-30 15:10:51
Subject: Re: Re: création de base en UTF8

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group