我有一个在zfs文件系统上有一个samba共享的服务器。 文件名是匈牙利语。 当我用sshlogin时,文件名在terminal上显示不正确:
如果我对文件名进行自动完成,那么很明显,文件名本身是好的,包含非ASCII字符:
我已经尝试将terminaltypesstring设置为“putty”,将terminal字符集更改为UTF-8或ISO-8859-2,但都没有帮助。
午夜指挥官出现同样的问题,即使是“行”也是不正确的:
它将puttyconfiguration中的显示字符更改为ISO8859-2:
那么至less线字符是正确的,但文件名仍然是不好的:
如果我启动“mc -ac”,那么我看到破折号而不是行,但文件名仍然是错误的:
所以一定是地区的问题。 如果我这样做:
setenv LANG hu_HU.ISO8859-2
那么它仍然是错误的:
我把putty的configuration设置为UTF-8,把LANG设置为hu_HU.UTF-8,然后它有一些字符是好的,但不是全部:
我迷路了。 我已经尝试了很多其他组合,但他们都没有正常工作。 有谁知道如何设置这个,所以文件名和graphics字符都正确显示在shell和MC?
顺便说一下,正确的文件名前缀应该是:“Díjbekérő”
这是正确的解决scheme。
将LANG环境variables设置为hu_HU.UTF-8
CSH:
setenv LANG hu_HU.UTF-8
庆典/ SH:
LANG=hu_HU.UTF-8 export LANG
还要将putty中的“terminal编码”设置为UTF-8:
那么它在shell和mc中都是完美的:
这也解决了当我从xterm / gnome-terminal Linux机器login时所遇到的问题。
看起来,一般的“全系统”解决scheme是在/etc/login.conf中创build一个新的类,
hungarian|Hungarian:\ :charset=hu_HU.UTF-8:\ :lang=hu_HU.UTF-8:\ :tc=default:
然后运行cap_mkdb /etc/login.conf,最后使用chsh更改特定用户的login类。 (对于新用户,当“adduser”要求时,最好指定login类。)
除了terminal编码之外,这里全部logging在案:
https://www.freebsd.org/doc/handbook/using-localization.html
在发送问题之前,我可能已经想清楚了。 但无论如何,我都会提供答案,以防有人遇到同样的问题。
更新:执行此操作后,您将无法使用默认设置的WinSCP。 WinSCP将尝试在服务器上执行“ls -la”并parsing结果。 对于非英文语言环境,结果将包含不同语言的date,而WinSCP不能解释该date。 为了解决这个问题,请去configuration并将列表命令从“ls -la”更改为“env LANG = en_US.UTF-8 ls -la”。 (在编辑连接/高级/环境/ SCP / Shell /目录列表下)
通过使用此设置,您将能够使用WinSCP并同时保持用户的默认语言环境。