On 2008-02-21 19:59, Tom Lane wrote:
You can set client_encoding in postgresql.conf if you want to, but I'm having a
hard time understanding why you think that'd be a good idea --- *particularly*
if your database encodings aren't all the same.
regards, tom lane
Actually, I'm getting external data in different encodings, and just
trying to understand what all my options are. I don't particularly like
the idea of setting (let alone changing) "client_encoding" in
postgresql.conf either (see below); I just mentioned that as a
potential example of where one possibly could set a default.
When working with PSQL, I'd like to be able to have the /default
/client_encoding track the current Linux shell encoding ($LANG) I'm
using at the moment, but change the client_encoding momentarily in scripts.
Setting "\encoding `echo ${LANG#*.}`" in a psqlrc file sets the proper
encoding, but doesn't set the default used by "SET client_encoding TO
DEFAULT", whereas "PGCLIENTENCODING=${LANG#*.}" sets the proper default,
unless $LANG changes.
So, I use "\encoding `echo ${LANG#*.}`" in a psqlrc file (that covers
interactive use), and add "export PGCLIENTENCODING=${LANG#*.}" in
scripts that run PSQL. That seems to be the best solution.
-----
The last two weekends, in order to maximize my options and flexibility,
I reinitialized all my servers with:
initdb -W -D /var/lib/pgsql/data --locale POSIX -E UTF8
I assume that gives me the most flexibility; if not, let me know (I
changed the four "LC_..." variables in postgresql.conf to = "en_US"). I
then recreated all my databases with a server_encoding of "UTF8", but
with varying client_encodings. For phpBB, UTF8, since v3.0 requires
that. For the others, either LATIN1 or UTF8, depending upon the
external data that's loaded into them.
--
Mail to my list address MUST be sent via the mailing list.
All other mail to my list address will bounce.