问题在psql 9.0(PostgreSQL)上的变音符号

我的服务器上安装了两个PostgreSQL实例:8.3和9.0。 在postgresql 9.0客户端 – psql上,波兰的变音符号(如ółęąśżźć)存在接口问题。

当我用psql 8.3连接到数据库(8.3或9.0)时 – 我可以在terminal上input所有的变音符号而没有任何问题:

www:/tmp# sudo -u postgres /usr/lib/postgresql/8.3/bin/psql -q postgres=# ółśćń 

但是,当我连接到相同的数据库与psql 9.0客户端 – 我不能在terminal上input变音符号:

 www:/tmp# sudo -u postgres /usr/lib/postgresql/8.3/bin/psql -q 

以下是一些编码设置:

 www:/tmp# sudo -u postgres /usr/lib/postgresql/9.0/bin/psql -q -c "show client_encoding" client_encoding ----------------- UTF8 (1 row) 

 www:/tmp# sudo -u postgres /usr/lib/postgresql/8.3/bin/psql -q -c "show client_encoding" client_encoding ----------------- UTF8 (1 row) 

 www:/tmp# sudo -u postgres /usr/lib/postgresql/9.0/bin/psql -q -l List of databases Name | Owner | Encoding | Collation | Ctype | Access privileges ---------------------+--------------+----------+-------------+-------------+----------------------- postgres | postgres | UTF8 | pl_PL.UTF-8 | pl_PL.UTF-8 | 

 www:/tmp# echo $LANG pl_PL.UTF-8 

它看起来像数据库/集群configuration并不重要 – 如果terminal上的psql 8.x工作正常,并且psql 9.x没有。 任何想法如何解决?

这可能与psql 9.0.2从readline切换到libedit有关。 你可以尝试(为我工作,Ubuntu 10.04):

 rlwrap psql -n ... 

或者:

 LD_PRELOAD='/lib/libreadline.so.5' psql ... 

或者,build议安装termcap,但我没有尝试过(在Ubuntu中没有明显的方法)。