Vous n'êtes pas identifié(e).

#1 09/08/2011 15:23:18

cafu3
Membre

Latin1

Ma base de données est en LATIN1 (ISO 8859-1) or je trouve dans des tables des caractères comme "œ" de LATIN9 (ISO 8859-15).
Je précise que le  caractère est telque et pas sous son code iso &#xxx; ou sous un autre forme

Comment cela est-ce possible ?

Hors ligne

#2 10/08/2011 12:12:41

kenrio
Membre

Re : Latin1

Bonjour, c'est quoi la collation et le type de caractere de votre base ? (LC_COLLATE et LC_TYPE )

Hors ligne

#3 10/08/2011 14:02:50

cafu3
Membre

Re : Latin1

lc_collate=C
lc_ctype=C

Hors ligne

#4 12/08/2011 15:44:06

dverite
Membre

Re : Latin1

œ a pour code 189 en iso-8859-15
Il se trouve que ce code existe aussi en iso-8859-1 et il est attribué au caractère ½

Donc si tu rentres un caractère ½ dans une base latin1 et que tu le relis avec une interprétation latin9, tu vois œ
Il n'y a rien d'anormal là dedans si ce n'est le fait de lire des contenus latin1 avec un afficheur réglé sur latin9, ou inversement.

Hors ligne

#5 12/08/2011 15:56:28

cafu3
Membre

Re : Latin1

le problème c'est que l'"afficheur est réglé" sur latin1 et pas latin9

Hors ligne

#6 12/08/2011 21:52:24

gleu
Administrateur

Re : Latin1

Qu'est-ce que vous appelez afficheur ?

De toute façon, dverite marque un point. Le code pour œ est accepté avec latin1 et latin9, donc aucun soucis au niveau de PostgreSQL. Ensuite, si vous utilisez psql, il n'est pas responsable de la façon dont ça s'affiche sur l'écran. Tout ce qu'il fait, c'est dire au serveur : "je veux les caractères dans tel encodage" et le serveur les transforme de latin1 dans l'encodage demandé par psql. Et psql l'affiche tel quel. Et si votre terminal est paramétré pour afficher en latin1, il affichera ½ alors que s'il est paramétré en latin, il affichera œ, etc.

Bref, vous devez vérifier que votre terminal affichera bien en latin1.


Guillaume.

Hors ligne

#7 15/08/2011 22:12:29

dverite
Membre

Re : Latin1

cafu3 a écrit :

le problème c'est que l'"afficheur est réglé" sur latin1 et pas latin9

Un afficheur réglé sur latin1 ne pourrait pas afficher [œ] puisque ce caractère n'existe pas dans le jeu de caractères latin1.
Voir http://fr.wikipedia.org/wiki/ISO_8859-1

Hors ligne

#8 16/08/2011 09:11:24

cafu3
Membre

Re : Latin1

dverite a écrit :

Un afficheur réglé sur latin1 ne pourrait pas afficher [œ] puisque ce caractère n'existe pas dans le jeu de caractères latin1.
Voir http://fr.wikipedia.org/wiki/ISO_8859-1

Je suis d'accord avec vous sur la théorie, d'où l'incrédulité de mon premier mesage ! Mais en pratique j'ai bien  [œ]  ....

Hors ligne

Pied de page des forums