use*_*521 4 postgresql psql postgresql-9.4
我正在尝试将中文字符粘贴到 psql 终端中:
$ psql
=> \encoding
=> UTF8
# Ctrl+v (?????)
=> ???????
Run Code Online (Sandbox Code Playgroud)
粘贴到普通终端(Max OS)时,它工作正常:
$ # Ctrl+v (?????)
$ ?????
Run Code Online (Sandbox Code Playgroud)
可能有什么问题?
psql
将输入处理委托给共享库,即libreadline
或libedit
。
但是libedit
过去在多字节字符集上不能可靠地工作,正如多次报道的那样,例如这里对于 OSX。
从你的评论:
/Library/PostgreSQL/9.4/bin/psql -> libedit@1.47.0
不工作,/Library/PostgreSQL/9.4/bin/psql -> libedit@1.48.0
不工作但/Applications/Postgres.app/Contents/Versions/9.4/bin/psql -> libedit@3.0.0
工作!
...似乎通过重新链接到较新版本,您可以解决问题。知道这很有用。
之所以libedit
使用,而libreadline
首先做得更好是因为后者是根据 GPL 许可的,而psql
像 PostgreSQL 的其余部分一样是 BSD 许可的。结果是,psql
在libreadline
不违反其许可的情况下,无法以编译形式与调用 的必要部分一起交付。另一方面,libedit
使用 BSD 许可证,因此可以随附它。
到目前为止,psql 打包程序的解决方案是随 PostgreSQL 一起提供,libedit
并让用户libreadline
在必要时重新链接它。
在 Linux 上,Debian/Ubuntu 软件包甚至可以在没有用户干预的情况下动态执行此操作。
归档时间: |
|
查看次数: |
753 次 |
最近记录: |