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: 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

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