add by zhj: 对原文有修改,原文是在创建用户时出现的问题,而我是在使用psql时出现的,

但问题是相同的。

原文:http://www.douban.com/note/362250557/

SSH远程连接到Ubutun,用psql时出错

ajian@ubuntu:~$ psqlperl: warning: Setting locale failed.perl: warning: Please check that your locale settings: LANGUAGE = "en_US:en", LC_ALL = (unset), LC_PAPER = "zh_CN.UTF-8", LC_ADDRESS = "zh_CN.UTF-8", LC_MONETARY = "zh_CN.UTF-8", LC_NUMERIC = "zh_CN.UTF-8", LC_TELEPHONE = "zh_CN.UTF-8", LC_IDENTIFICATION = "zh_CN.UTF-8", LC_MEASUREMENT = "zh_CN.UTF-8", LC_TIME = "zh_CN.UTF-8", LC_NAME = "zh_CN.UTF-8", LANG = "en_US.UTF-8" are supported and installed on your system.perl: warning: Falling back to the standard locale ("C").psql (9.1.13)Type "help" for help.

ajian=>

虽然也能连接到数据库,但查询时中文无法正常显示

在Stack Overflow中发现如下帖子:http://stackoverflow.com/questions/2499794/how-can-i-fix-a-locale-warning-from-perl。发现是SSH连接时,远程主机的/etc/ssh/sshd_config的文件有如下设置:# Allow client to pass locale environment variablesAcceptEnv LANG LC_*远端会读取SSH客户端的语系配置,但远端支持语系里没有SSH客户端的当前语系,所以出现上述错误。从上面的打印可以看到,SSH客户端语系中使用了en_US:en,zh_CN.UTF-8,en_US.UTF-8,我们

看一下远端,如下

远端支持语系root@LePlanet:~# locale -alocale: Cannot set LC_CTYPE to default locale: No such file or directoryCC.UTF-8en_AGen_AG.utf8en_AU.utf8en_BW.utf8en_CA.utf8en_DK.utf8en_GB.utf8en_HK.utf8en_IE.utf8en_INen_IN.utf8en_NGen_NG.utf8en_NZ.utf8en_PH.utf8en_SG.utf8en_US.utf8en_ZA.utf8en_ZMen_ZM.utf8en_ZW.utf8POSIX所以,远端需下载 zh_CN.UTF-8root@LePlanet:~# sudo locale-gen zh_CN.UTF-8Generating locales...  zh_CN.UTF-8... doneGeneration complete.再查看:root@LePlanet:~# locale -aCC.UTF-8en_AGen_AG.utf8en_AU.utf8en_BW.utf8en_CA.utf8en_DK.utf8en_GB.utf8en_HK.utf8en_IE.utf8en_INen_IN.utf8en_NGen_NG.utf8en_NZ.utf8en_PH.utf8en_SG.utf8en_US.utf8en_ZA.utf8en_ZMen_ZM.utf8en_ZW.utf8POSIXzh_CN.utf8这样就可以了。此外,可以用sudo locale-gen,更新语系至最新。

好文推荐

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。