Vous n'êtes pas identifié(e).
Pages : 1
Bonjour,
J'ai un problème d'encodage des caractères lorsque je lance un script depuis phpPgadmin
Ma configuration :
PostgreSQL 8.4.3 sur Windows Server 2008
Base de données en UTF8
Un client phpPgAdmin 5.0-beta2 (PHP 5.2.8)
Les commandes suivantes exécutées depuis la fenêtre SQL s'exécutent normalement
CREATE TABLE test (c1 INTEGER, c2 VARCHAR(20));
INSERT INTO test VALUES (1, 'été');
le tupe est inséré.
Je lance un script SQL contenant deux commandes :
INSERT INTO test VALUES (2, 'maison');
INSERT INTO test VALUES (3, 'fête');
Le premier tuple est bien inséré mais pas le second.
Problème d'encodage des caractères.
Voici le message :
INSERT 0 1
data.sql:2: ERROR: invalid byte sequence for encoding "UTF8": 0xea7465
HINT: This error can also happen if the byte sequence does not match the encoding expected by the server, which is controlled by "client_encoding".
Le fait que l'encodage soit correct pour les commandes exécutées depuis
la fenêtre SQL mais pas depuis celle permettant de lancer des scripts me semble
bizarre. Je vois que ce ne sont pas les mêmes fichiers php qui sont
sont utilisés et je ne suis pas une spécialiste php...
Savez-vous dans quel fichier php cette configuration doit être faite et comment ?
D'avance merci!
Sylvie
Hors ligne
Bonjour, pouvez vous définir fenêtre SQL et script SQL précisément (je ne connais pas trop phpPgAdmin) ?
Marc.
Hors ligne
Bonjour,
Il semble que le fichier que vous utploadez ne soit pas lui même en UTF8.
Vous auriez le même problème avec psql lui même. Il vous faut préciser au début de votre script l'encodage utilisé avec la requête "SET client_encoding TO 'iso8859-1';"
Exemple:
ioguix$ cat /tmp/test.sql
INSERT INTO test VALUES (3, 'fête');
ioguix$ psql pagila
pagila=> \i /tmp/test.sql
psql:/tmp/test.sql:1: ERROR: invalid byte sequence for encoding "UTF8": 0xea7465
ASTUCE : This error can also happen if the byte sequence does not match the encoding expected by the server, which is controlled by "client_encoding".
pagila=> SET client_encoding TO 'iso8859-1';
SET
pagila=> \i /tmp/test.sql
INSERT 0 1
Hors ligne
Merci pour votre réponse claire et précise.
C'est effectivement la bonne solution!
Je pense que c'est une bonne pratique que je vais adopter .
J'en profite pour signaler que j'apprécie énormément la qualité de vos réponses en général et la rapidité de réaction que vous avez!
Bravo!
Sylvie
Hors ligne
Pages : 1