![psql 不允许输入西里尔符号](https://linux22.com/image/630669/psql%20%E4%B8%8D%E5%85%81%E8%AE%B8%E8%BE%93%E5%85%A5%E8%A5%BF%E9%87%8C%E5%B0%94%E7%AC%A6%E5%8F%B7.png)
我有一台安装了 postgresql 8.4 的服务器。但是当我尝试插入一些俄语数据时,例如:
UPDATE category set question = '[there should be russian symbols]' WHERE id = 1;
终端不允许我输入俄语符号。
这是带有区域设置的 postgresql.conf 文件的一部分:
lc_messages = 'ru_RU.UTF-8'
lc_monetary = 'ru_RU.UTF-8'
lc_numeric = 'ru_RU.UTF-8'
lc_time = 'ru_RU.UTF-8'
以下是区域设置命令输出:
LANG=ru_RU.UTF-8
LANGUAGE=ru_RU.UTF-8
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES="ru_RU.UTF-8"
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=ru_RU.UTF-8
我究竟做错了什么?
答案1
我遇到了同样的问题,但使用的是 postgresql 9.3。
问题在于先加载哪个库。在我的例子中是
/usr/lib/postgresql/9.3/bin
使用符号链接:
ldd /usr/lib/postgresql/9.3/bin/psql
libedit.so.2 => /usr/lib/x86_64-linux-gnu/libedit.so.2 (0x00007f1b54ac2000)
如果你像这样运行 psql:
LD_PRELOAD=/lib/x86_64-linux-gnu/libreadline.so.6.3 psql
然后您就可以输入西里尔符号。