Re: Migrer UTF8 vers LATIN1
David Tokmatchi a écrit :
Bonjour
Une base Postgres a été crée avec l'encodage UTF8. Cette base est mise à
jour uniquement par des données venant d'une autre base codée en LATIN1.
Lors d'insertion des caractères accentués j'ai eu des erreurs et à
l'avenir pour assurer la cohérence des données, je préfère aligner
l'encodage des deux bases.
J'ai vu qu'il y la possibilité d'utiliser la commande :*set
client_encoding = latin1 * avant de lancer les scripts. Sachant que mes
données de la base sont exclusivement celles de LATIN1 :
Bonjour,
L'encodage des caractères intervient en trois étapes :
char -(1)-> INSERTION -(2)-> POSTGRESQL -(2)-> SELECTION -(3)-> char
Si votre base (PG8 et plus) utilise un encodage internet (2) UTF-8, ce
qui n'est pas une mauvaise idée, elle va s'attendre à recevoir vos
caractères (1) dans ce format d'encodage. De même les caractères
restitués (3) le seront aussi en UTF-8.
Il est possible dynamiquement au niveau du client connecté, _avant_ une
insertion (1) ou une sélection (3) , de spécifier explicitement le jeu
de caractère utilisé via l'ordre : SET CLIENT_ENCODING=iso-8859-15 ; si
votre application le permet. On devine que de cette façon l'encodage
peut même être différent entre (1) et (3).
Statiquement enfin, coté serveur, il est aussi possible d'indiquer quel
est l'encodage par défaut de tout client (fichier postgresql.conf) :
client_encoding = ISO-8859-15
Stéphane BUNEL.
Home |
Main Index |
Thread Index