使用PuTTY从Windows 7 PC通过SSH连接到Ubuntu服务器,出现一些屏幕错误:
即它:
我连接到相同的Ubuntu服务器与Mac OS X的terminal和SHH,并没有得到这些屏幕garbling(即一切看起来和工作正常)。 我已经尝试过使用PuTTY中的字体设置,将其从Courier New改为Consolas,但没有运气。
所以我的问题是:
如何configuration腻子正确显示特殊字符,而不是双画/覆盖屏幕线?
您几乎可以肯定在您的PuTTY设置中设置了错误的字符集。
通过运行以下命令validation远程系统上的字符集:
locale
这应该返回像这样的东西:
LANG=de_DE.UTF-8 LC_CTYPE="de_DE.UTF-8" LC_NUMERIC="de_DE.UTF-8" LC_TIME="de_DE.UTF-8" LC_COLLATE="de_DE.UTF-8" LC_MONETARY="de_DE.UTF-8" LC_MESSAGES="de_DE.UTF-8" LC_PAPER="de_DE.UTF-8" LC_NAME="de_DE.UTF-8" LC_ADDRESS="de_DE.UTF-8" LC_TELEPHONE="de_DE.UTF-8" LC_MEASUREMENT="de_DE.UTF-8" LC_IDENTIFICATION="de_DE.UTF-8" LC_ALL=
因此,请检查翻译下的您的PuTTY设置,确保您将UTF-8
设置为字符集。
您可能还需要调整线条绘制设置,但可能不太可能。
我在Debian的aptitude
程序中遇到了问题,即使我的字符集是UTF-8。 我的工作是将连接>数据>'terminaltypesstring'设置为'腻子',而不是'xterm' – 显然腻子忽略字符序列切换到绘图模式: http://www.chiark.greenend .org.uk /〜sgtatham /腻子/心愿/ UTF8加vt100.html
另外,如果UTF-8没有正确configuration,你可以运行它为mc -ac 。
积分: http : //blog.acsystem.sk/linux/midnight-commander-utf8-line-drawing-characters-problem
这两个基本因素是Window / Translation UTF-8在Linux中的putty和locale设置,正如这里和其他许多地方所说的。
另外,可以帮助putty将连接/数据/terminaltypesstring设置为putty ,并且/或者在Linux中export NCURSES_NO_UTF8_ACS=1
。 这两个也是多个地方提到的。
但是:对于某些字符,您仍然可能会得到块,因为像Courier和Lucida Console这样的默认字体没有全部的Unicode字符。 下载并安装http://dejavu-fonts.org/wiki/Download ,然后设置putty来使用它。
最后一个技巧对于我来说是必要的(推荐!)显示所有graphics字符。
在我的情况下(Ubuntu 14.04),这个问题是由于缺失造成的
UsePAM yes
在/ etc / ssh / sshd_config中input为/etc/pam.d/sshd。pamconfiguration默认负责将/ etc / default / locale加载到用户环境中。
另一个与pam相关的原因可能会影响带有powerbroker / pbis /同样authentication的主机。
grep /etc/pam.d“lsass”发生:
grep -r lsass /etc/pam.d
如果您在输出中看到如下内容:
/etc/pam.d/common-session:session sufficient pam_lsass.so
那么这可能是问题的根源。 快速解决方法是用pam_lsass模块旁边的“optional”replace“enough”,使其看起来像:
/etc/pam.d/common-session:session optional pam_lsass.so
/etc/pam.d/common-session(或其他类似条目的文件 – 可能很less)可能在加载pam_env之前被/etc/pam.d/sshd包含,所以如果pam模块的处理完成在涉及到pam_env之前,/ etc / default / locale不会在用户环境中加载,并且出现乱码。
在使用Docker机器(系统pipe理员设置的语言环境和机器上)时,我正在寻找许多解决scheme。 在我的Putty中一切正常(我有UTF-8
),我也使用其他SSH客户端,并有完全相同的问题。
运行:
mc -ac
正在解决问题(但不完全),我正在寻找完整的解决scheme。
在阅读了很多build议后,我终于find了解决问题的方法。
在terminal上运行时:
locale
validation您设置的区域设置。 我有默认的C
语言环境。
要validation所有安装的运行locale -a
我有例如:
C C.UTF-8 POSIX
默认。
解决scheme是使用C.UTF-8
语言环境导出LANG
variables,如下所示:
export LANG="C.UTF-8"
你显然可以将它添加到.bashrc
,让它自动在你的configuration文件中设置。
对于你们所有可怜的老VMS家伙来说,
PuTTY→窗口→翻译→远程字符集→DEC-MCS
为我工作。
以这种方式运行MC(设置区域设置为en)适用于我:
$ LC_ALL=en mc
什么对我来说是“连接,数据,terminaltypes的string= ansi”加上“窗口,翻译,远程字符集=使用字体编码”然后set TERM=ansi
在unix端。
PS。 如果您不得不使用MS-Word,请记住closures智能报价。