Re: perl/tk - accents

Lists: pgsql-fr-generale
From: Bruno <bruno(dot)leveque(at)net6d(dot)com>
To: pgsql-fr-generale <pgsql-fr-generale(at)postgresql(dot)org>
Subject: perl/tk - accents
Date: 2004-07-05 16:46:11
Message-ID: Pine.LNX.4.58.0407051839300.19492@moissac.leveque.fr
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-fr-generale

Bonsoir,

je suis en train de développer une caisse enregistreuse en perl/tk et je me
heurte à un problème avec les accents.

En effet, directement (à la main), je peux insérer, dans une table quelconque, lévêque. Dès que je le fais via mon programme, j'obtiens : Lévêque.

Je sui à peut prêt certain que c'est un problème d'encodage. Mais lequel ??

Auriez-vous une idée ?

Merci

Bruno

PS. :

Variables d'environnement

LANG=fr_FR
LC_ALL=fr_FR
Base au format LATIN9

Versions :

postgres 7.4.2
perl 5.8.0
DBI 1.38
DBD-Pg 1.22
pgsql_perl 5-1.9.0

Bruno LEVEQUE
Net6D
http://www.net6d.com
bruno(dot)leveque(at)net6d(dot)com


From: Patrick Welche <prlw1(at)newn(dot)cam(dot)ac(dot)uk>
To: Bruno <bruno(dot)leveque(at)net6d(dot)com>
Cc: pgsql-fr-generale <pgsql-fr-generale(at)postgresql(dot)org>
Subject: Re: perl/tk - accents
Date: 2004-07-05 19:15:21
Message-ID: 20040705191521.GF10189@quartz.newn.cam.ac.uk
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-fr-generale

On Mon, Jul 05, 2004 at 06:46:11PM +0200, Bruno wrote:
> En effet, directement (à la main), je peux insérer, dans une table
> quelconque, lévêque. Dès que je le fais via mon programme,
> j'obtiens : Lévêque.
>
> Je sui à peut prêt certain que c'est un problème d'encodage. Mais lequel ??

Etant donne que les lettres avec des accents prennent maintenant deux
octets, il me semble que le serveur garde les donnes en unicode, mais le
client parle par example LATIN9. Que dit "psql -l" ? (la derniere colonne
donne l'encodage sur le serveur).

Patrick

> LANG=fr_FR
> LC_ALL=fr_FR
> Base au format LATIN9


From: Bruno <bruno(dot)leveque(at)net6d(dot)com>
To: Patrick Welche <prlw1(at)newn(dot)cam(dot)ac(dot)uk>
Cc: Bruno <bruno(dot)leveque(at)net6d(dot)com>, pgsql-fr-generale <pgsql-fr-generale(at)postgresql(dot)org>
Subject: Re: perl/tk - accents
Date: 2004-07-06 06:21:57
Message-ID: Pine.LNX.4.58.0407060813510.230@moissac.leveque.fr
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-fr-generale

Bonjour,

Bonne idée, mais hélas ...

Ma base est créée avec une ligne : createdb -E LATIN9
Le schéma est mis en place avec un : SET client_encoding = 'LATIN9';
Dans le fichier dump me servant pour mettre en place le schéma et certaines données, j'ai des caractères accentués qui sont bien pris.

A mon avis mon problème ne viendrait pas de la base mais d'un des modules perl DBI, DBD-Pg, pgsql_perl. Donc très certainement de l'encodage du client.

J'ai essayé l'UNICODE, l'UTF8, SQL_ASCII, LATIN9 (sans succès)

Merci à tous

Bruno

On Mon, 5 Jul 2004, Patrick Welche wrote:

> On Mon, Jul 05, 2004 at 06:46:11PM +0200, Bruno wrote:
> > En effet, directement (à la main), je peux insérer, dans une table
> > quelconque, lévêque. Dès que je le fais via mon programme,
> > j'obtiens : Lévêque.
> >
> > Je sui à peut prêt certain que c'est un problème d'encodage. Mais lequel ??
>
> Etant donne que les lettres avec des accents prennent maintenant deux
> octets, il me semble que le serveur garde les donnes en unicode, mais le
> client parle par example LATIN9. Que dit "psql -l" ? (la derniere colonne
> donne l'encodage sur le serveur).
>
> Patrick
>
> > LANG=fr_FR
> > LC_ALL=fr_FR
> > Base au format LATIN9
>

Bruno LEVEQUE
Net6D
http://www.net6d.com
bruno(dot)leveque(at)net6d(dot)com


From: Bruno <bruno(dot)leveque(at)net6d(dot)com>
To: Bruno <bruno(dot)leveque(at)net6d(dot)com>
Cc: Patrick Welche <prlw1(at)newn(dot)cam(dot)ac(dot)uk>, pgsql-fr-generale <pgsql-fr-generale(at)postgresql(dot)org>
Subject: Re: perl/tk - accents
Date: 2004-07-06 07:20:02
Message-ID: Pine.LNX.4.58.0407060914470.230@moissac.leveque.fr
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-fr-generale

Juste une petite précision,

Je viens de tracer ma requete et je constate que la requête azccentuée a été convertie (au niveau des accents)

insert into clientfournisseur values ('3','é ... au lieu de
insert into clientfournisseur values ('3','é ...

Mon problème pourrait doc aussi provenir de libpq (pgsql-perl fait appel à libpq)

De plus, j'ai essayé en mettant la variable d'env PGCLIENTENCODING à LATIN9

Postgres est installé après compilation :
./configure --prefix=/opt/postgres --with-openssl --with-perl --datadir=/opt/postgres/data --enable-multibyte --with-x --with-CXX --enable-nls=fr

Sans succès :(

Merci pour les idées

Bruno

On Tue, 6 Jul 2004, Bruno wrote:

> Bonjour,
>
> Bonne idée, mais hélas ...
>
> Ma base est créée avec une ligne : createdb -E LATIN9
> Le schéma est mis en place avec un : SET client_encoding = 'LATIN9';
> Dans le fichier dump me servant pour mettre en place le schéma et certaines données, j'ai des caractères accentués qui sont bien pris.
>
> A mon avis mon problème ne viendrait pas de la base mais d'un des modules perl DBI, DBD-Pg, pgsql_perl. Donc très certainement de l'encodage du client.
>
> J'ai essayé l'UNICODE, l'UTF8, SQL_ASCII, LATIN9 (sans succès)
>
> Merci à tous
>
> Bruno
>
> On Mon, 5 Jul 2004, Patrick Welche wrote:
>
> > On Mon, Jul 05, 2004 at 06:46:11PM +0200, Bruno wrote:
> > > En effet, directement (à la main), je peux insérer, dans une table
> > > quelconque, lévêque. Dès que je le fais via mon programme,
> > > j'obtiens : Lévêque.
> > >
> > > Je sui à peut prêt certain que c'est un problème d'encodage. Mais lequel ??
> >
> > Etant donne que les lettres avec des accents prennent maintenant deux
> > octets, il me semble que le serveur garde les donnes en unicode, mais le
> > client parle par example LATIN9. Que dit "psql -l" ? (la derniere colonne
> > donne l'encodage sur le serveur).
> >
> > Patrick
> >
> > > LANG=fr_FR
> > > LC_ALL=fr_FR
> > > Base au format LATIN9
> >
>
> Bruno LEVEQUE
> Net6D
> http://www.net6d.com
> bruno(dot)leveque(at)net6d(dot)com
>

Bruno LEVEQUE
Net6D
http://www.net6d.com
bruno(dot)leveque(at)net6d(dot)com


From: Francois Suter <francois(at)monpetitcoin(dot)com>
To: Bruno <bruno(dot)leveque(at)net6d(dot)com>
Cc: Pgsql Generale Fr <pgsql-fr-generale(at)postgresql(dot)org>
Subject: Re: perl/tk - accents
Date: 2004-07-06 07:41:42
Message-ID: EC3A97CC-CF1F-11D8-8571-000393427520@monpetitcoin.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-fr-generale

Salut,

> Je viens de tracer ma requete et je constate que la requête azccentuée
> a été convertie (au niveau des accents)
>
> insert into clientfournisseur values ('3','é ... au lieu de
> insert into clientfournisseur values ('3','é ...
>
> Mon problème pourrait doc aussi provenir de libpq (pgsql-perl fait
> appel à libpq)

Est-ce que le problème ne pourrait pas venir de l'éditeur dans lequel
tu tapes ton code (si j'ai bien compris, ce sont les requêtes qui sont
dans ton code qui foirent)? Personnellement, je bosse sur Mac OS X et
quand je tape des accents dans un programme Perl en utilisant, par
exemple, BBEdit comme éditeur, les accents partent aux fraises dans la
base de données. Par contre, quand je tape mon code dans Dreamweaver,
les accents passent sans problème. Peut-être est-ce une question de
trouver le bon éditeur.

A+

---------------
Francois

Home page: http://www.monpetitcoin.com/

"Nous sommes peu à penser trop, trop à penser peu." - Françoise Sagan