Vous n'êtes pas identifié(e).
Pages : 1
Bonjour,
Je débute avec psql sous win10 et après avoir cherché un peu partout je me tourne vers vous, voilà mon soucis :
- j'ai récupéré un fichier person.sql généré par le site https://mockaroo.com/ (générateur de data test)
(le contenu de ce fichier person.sql)
create table person (
first_name VARCHAR(50),
last_name VARCHAR(50),
email VARCHAR(50),
gender VARCHAR(50),
date_of_birth DATE,
country_of_birth VARCHAR(50)
);
insert into person (first_name, last_name, email, gender, date_of_birth, country_of_birth) values ('Ténner', 'Mumbeson', 'tmumbeson0@usda.gov', 'Genderqueer', '22/12/2020', 'Philippines');
insert into person (first_name, last_name, email, gender, date_of_birth, country_of_birth) values ('Elvéra', 'Durrett', 'edurrettrr@diigo.com', 'Agender', '05/07/2020', 'Philippines');
- puis j'ai créé une database "test"
- puis j'ai importé le .sql avec la commande :
psql -U postgres -d test -f person.sql
(tout est ok jusque là)
- et enfin quand je me connecte à la DB et que j'exécute
SELECT * FROM "person";
- les accents des prénoms ne s'affichent pas correctement :
- alors que quand j'ajoute les lignes moi-même à la main en étant connecté à la DB "test" avec la commande
INSERT INTO "person" ("first_name", "last_name", "email", "gender", "date_of_birth", "country_of_birth") values ('Ténner', 'Mumbeson', 'tmumbeson0@usda.gov', 'Genderqueer', '22/12/2020', 'Philippines');
- et que je refais la commande SELECT, les accents sont correctement affichés
Si quelqu'un sait comment résoudre le problème ?
Dernière modification par Yann (13/05/2021 14:04:43)
Hors ligne
Forte chance que les données du fichier importé étaient dans un autre encodage que celui déclaré par le paramètre client_encoding. Je pense que je commencerais par regarder le contenu de ce fichier et surtout son encodage.
Guillaume.
Hors ligne
en tapant la commande 'show client_encoding' ça me renvoie WIN1252
et je sais pas trop comment récupérer le format d'encodage du fichier .sql
Dernière modification par Yann (13/05/2021 22:03:49)
Hors ligne
Je crois que notepad++ l'indique mais je n'en sais guère plus que ça. Mes connaissances sont Windows ne sont plus ce qu'elles étaient.
Guillaume.
Hors ligne
c'est bien en UTF-8
Je crois que notepad++ l'indique mais je n'en sais guère plus que ça. Mes connaissances sont Windows ne sont plus ce qu'elles étaient.
C'est ce que me disent tous les gens qui me file un p'tit coup d'pouce ^^ j'crois que j'vais bientôt tenter Linux en dualboot
Merci quand même pour l'aide ! si jamais je trouve la solution j'la poserait ici !
Belle journée à tt le monde !
Hors ligne
Si le fichier est en UTF-8, il faut tout d'abord configurer le client_encoding à UTF-8 puis intégrer les données. Dans votre cas, soit vous modifiez le fichier person.sql en ajoutnat en première ligne "SET client_encoding TO UTF8;", soit vous entrez dans psql et vous lancez les deux commandes :
SET client_encoding to UTF8;
\i person.sql
(Ça va recréer la table, donc il faut l'avoir supprimé auparavant.)
Guillaume.
Hors ligne
Si le fichier est en UTF-8, il faut tout d'abord configurer le client_encoding à UTF-8 puis intégrer les données. Dans votre cas, soit vous modifiez le fichier person.sql en ajoutnat en première ligne "SET client_encoding TO UTF8;", soit vous entrez dans psql et vous lancez les deux commandes :
SET client_encoding to UTF8; \i person.sql
(Ça va recréer la table, donc il faut l'avoir supprimé auparavant.)
exactement !
set client_encoding to UTF8;
et aussi changer le chcp du terminal :
- soit depuis le terminal avec
powershell /c chcp 65001
ou depuis le cmd
cmd /c chcp 65001
-ou depuis dans psql :
\! chcp 65001
ensuite pour pas avoir à le faire à chaque fois j'ai fait cette manip' (hésitez pas à me dire si c'est déconseillé, mais pour le moment ça fonctionne nickel) :
Si jamais ça peut servir à d'autre
Hors ligne
Je crois que notepad++ l'indique mais je n'en sais guère plus que ça. Mes connaissances sont Windows ne sont plus ce qu'elles étaient.
Pour Notepad++, l'encodage est indiqué dans la barre d'état en bas à droite et il y a un menu "Encodage" dans la barre de menu qui donne l'information et permet de transcoder.
J'ai eu ce problème d'accent après un copy que j'ai réglé en passant le fichier en UTF8 (je me rappelle plus si c'était avec ou sans BOM) depuis Notepad++.
Hors ligne
Pages : 1