Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
#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.
@DanielVerite
http://blog-postgresql.verite.pro/
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
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
@DanielVerite
http://blog-postgresql.verite.pro/
Hors ligne
#8 16/08/2011 09:11:24
- cafu3
- Membre
Re : Latin1
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