Re: client encoding that psql command sets
От | Albe Laurenz |
---|---|
Тема | Re: client encoding that psql command sets |
Дата | |
Msg-id | A737B7A37273E048B164557ADEF4A58B17CA3DA7@ntex2010i.host.magwien.gv.at обсуждение исходный текст |
Ответ на | Re: client encoding that psql command sets ("Tsubasa Sakamoto" <sakamoto.tsubasa@ryobi.co.jp>) |
Ответы |
Re: client encoding that psql command sets
Re: client encoding that psql command sets |
Список | pgsql-general |
[CC'ed -hackers] Tsubasa Sakamoto wrote: >> Not sure that it makes a difference but the docs say psql looks at >> LC_CTYPE not LANG for Unix systems. You did not say what OS you are >> working on though from the examples I am guessing some form of Unix. > The LC_CTYPE environment variable was set up and re-verified. > The result of psql command is following. > > [Result] > % setenv LC_CTYPE ja_JP.eucJP > > % psql postgres -f test.txt -o result.txt EUC_JP > > % psql postgres -f test.txt > result.txt > UTF8 > > % psql postgres -o result.txt < test.txt > UTF8 > > % psql postgres < test.txt > result.txt > UTF8 > > Even when a LC_CTYPE environment variable was set up, the result did not change. > What do you think? I think that the documentation contradicts the code. In bin/psql/settings.h: typedef struct _psqlSettings { [...] bool notty; /* stdin or stdout is not a tty (as determined * on startup) */ [...] } PsqlSettings; extern PsqlSettings pset; In bin/psql/command.c and bin/psql/startup.c: keywords[6] = "client_encoding"; values[6] = (pset.notty || getenv("PGCLIENTENCODING")) ? NULL : "auto"; That matches your observations: client_encoding=auto is only used if both stdin and stdout are attached to a tty. I suggest the attached documentation fix. Yours, Laurenz Albe
Вложения
В списке pgsql-general по дате отправления: