Re: psql -c "\copy table to test.csv with CSV" - french character iswrong
| От | Pierre Chevalier Géologue |
|---|---|
| Тема | Re: psql -c "\copy table to test.csv with CSV" - french character iswrong |
| Дата | |
| Msg-id | 0fab017c-ada9-e64f-a889-57e868c35230@free.fr обсуждение исходный текст |
| Ответ на | psql -c "\copy table to test.csv with CSV" - french character iswrong (Emi <emilu@encs.concordia.ca>) |
| Ответы |
Re: psql -c "\copy table to test.csv with CSV" - french character iswrong
|
| Список | pgsql-sql |
HelloBonsoir, Which operating system are you dealing with on the client side? For this kind of purpose, I have a handy script which does the job flawlessly, I've never had problems with any wéird frènch âccènts. I don't use the \c command, but the COPY TO syntax, rather. I can't remember the reason why, but it just works. Here's the complete script: # pierre@latitude: ~ < 2017_11_23__19_07_35 > cat bin/sql2csv #!/bin/sh # (c) Pierre Chevalier # Ce script fait un fichier csv à partir de la bd postgresql GLL_BD_NAME dans l'hôte GLL_BD_HOST, avec la requête en entrée # This script creates a csv file from the postgresql database GLL_BD_NAME served by GLL_BD_HOST host, with the query specified as a double-quoted string input #$1: requete #$2: fichier de sortie .csv => bof, non, on redirige, plutôt #$1: query #$2: .csv output file => bof, no, better to just redirect or pipe, later echo "COPY ($1) TO stdout WITH CSV HEADER FORCE QUOTE *" | psql -X -h $GLL_BD_HOST $GLL_BD_NAME As you can see, only the last line is relevant. I use the script as follows, after adjusting the variables are set properly: # pierre@latitude: ~ < 2017_11_23__19_07_35 > sql2csv "SELECT DISTINCT opid, year FROM public.field_observations ORDER BY year LIMIT 10" > /tmp/rien.csv # pierre@latitude: ~ < 2017_11_23__19_07_35 > cat /tmp/rien.csv opid,year "0","1946" "0","1997" "9","1997" "0","1998" "9","1998" "9","1999" "0","1999" "9","2000" "17","2000" ,"2006" # pierre@latitude: ~ < 2017_11_23__19_07_35 > I'm doing this on Debian GNU/Linux, both on client and server. In your case, you could try something like this (on one line): echo "COPY (SELECT * FROM t1) TO stdout WITH CSV HEADER FORCE QUOTE *" | psql -h db1 -U u1 -d d1 > test.csv À+ Pierre Le 23/11/2017 à 17:42, Emi a écrit : > Hello, > > Tried to run: > psql -h db1 -U u1 -d d1 -c "\copy t1 to test.csv with CSV" > > Problem: > French characters are not shown correctly. > > > Tried: > psql -h db1 -U u1 -d d1 -c "\copy t1 to test.csv with CSV ENCODING > 'UTF8' " > Got: \copy: parse error at "encoding" > > Can you help how to copy french characters correctly into csv file please? > > Thanks a lot. -- ____________________________________________________________________________ Pierre Chevalier PChGEI: Pierre Chevalier Géologue Et Informaticien Mesté Duran 32100 Condom Tél : 06 37 80 33 64 Émail : pierrechevaliergeolCHEZfree.fr Tweeter: PierreChTux icq# : 10432285 jabber: pierre.chevalier1967@jabber.fr http://pierremariechevalier.free.fr/pierre_chevalier_geologue ____________________________________________________________________________
В списке pgsql-sql по дате отправления: