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

Peripheral Links

Header And Logo

PostgreSQL
| The world's most advanced open source database.

Site Navigation

Search for
  Advanced Search

Re: Re: création de base en UTF8



	Stephane Bortzmeyer wrote:

> 0xe97461 = "éta" en latin-9. Bizarre, d'où ça peut bien venir ?

Ah il me semble que je vois d'où ça vient, grâce à l'option -E.

$ export LC_ALL=fr_FR(at)euro

$ psql --version
psql (PostgreSQL) 8.1.4
contient le support pour l'édition de la ligne de commande

$  psql -E -h/tmp -p5500 -l base_en_utf8
******** REQUETE *********
SELECT d.datname as "Nom",
       r.rolname as "Propriétaire",
       pg_catalog.pg_encoding_to_char(d.encoding) as "Encodage"
FROM pg_catalog.pg_database d
  JOIN pg_catalog.pg_roles r ON d.datdba = r.oid
ORDER BY 1;
**************************

ERROR:  invalid byte sequence for encoding "UTF8": 0xe97461
HINT:  This error can also happen if the byte sequence does not match the encoding expected by the server, which is controlled by "client_encoding".

Je comprends ça comme:
Le fait de spécifier une base en UTF8 sur la ligne de commande (bien que ce soit inutile avec l'option -l mais bon) implique que le client_encoding passe à UTF8 pour la session.
Le fait d'avoir une locale en latin9 implique la traduction de la colonne rolname en français-latin9, donc le terme "Propriétaire" avec un accent codé en un octet 0xe9. Or c'est en contradiction avec le client_encoding, d'où l'erreur sortie par le serveur au moment de l'exécution de la requête.

-- 
 Daniel
 PostgreSQL-powered mail user agent and storage: http://www.manitou-mail.org



Home | Main Index | Thread Index

Privacy Policy | PostgreSQL Archives hosted by Command Prompt, Inc. | Designed by tinysofa
Copyright © 1996 – 2008 PostgreSQL Global Development Group