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.