Mac*_*cha 18 ssh character-encoding locale
当我ssh
进入我的 VPS 时,我irssi
在屏幕上运行。当有人发送 unicode 字符(例如 © 或 €)时,irssi
当我在ssh
会话中通过屏幕使用它时会显示垃圾。如果我irssi
使用 irssi 的代理模块连接到它,从我本地计算机上运行的 irssi,它会正确显示。
同样,如果我在 VPS(屏幕外)上运行 ghci 并输入其中一个字符,它就会崩溃。
因此,显然,无论是在 ssh 还是系统设置中,我与 VPS 的连接都存在某种字符编码问题。
我怎样才能找出导致这种情况的原因并解决它?
细节:
客户系统
VPS系统
Gil*_*il' 20
运行该locale
命令将为您提供有关区域设置的信息;字符编码由LC_CTYPE
设置给出。
在 Ubuntu 下,默认的语言环境设置在/etc/default/locale
. 您可以通过LC_CTYPE
在您~/.profile
的 VPS 上设置来更改字符编码,例如
export LC_CTYPE=en_US.UTF-8
Run Code Online (Sandbox Code Playgroud)
您必须确保en_US.UTF-8
语言环境可用。Ubuntu 只为请求的语言环境生成语言环境数据。如果您安装了该软件包,则所有英语语言环境都应该可用language-pack-en-base
。您可以手动请求他们的生成
sudo locale-gen en
Run Code Online (Sandbox Code Playgroud)
您还可以添加条目以/var/lib/locales/supported.d/local
确保安装了特定的语言环境(例如,添加行en_US.UTF-8 UTF-8
)。
实际上 LC_CTYPE 中给出的值是一个语言环境名称。通常,但不是必需的,字符集编码在名称中。
但是如果你想知道,当然,字符集,那么命令是locale -k charmap
.
~$ LC_CTYPE=C locale -k charmap
charmap="ANSI_X3.4-1968"
~$ LC_CTYPE=fr_BE locale -k charmap
charmap="ISO-8859-1"
Run Code Online (Sandbox Code Playgroud)
(注意字符集如何没有出现在上面的 LC_TYPE 值上)。
归档时间: |
|
查看次数: |
46191 次 |
最近记录: |