我正在尝试使用 Mintty 从我的 Windows 机器 ssh 到 FreeBSD-11.2-Release,但是当我将 LC_ALL 设置为 en_US.UTF-8 并尝试输入/粘贴非 ASCII 字符时,连接已关闭。
我正在使用 Cygwin,也尝试过 Qterminal 和 Terminator。
FreeBSD 在 11.2-Release 版本中是否存在 UTF-8 字符问题?或者这只是 Windows 特定的(我的意思是 macOS 或 Linux 用户对此没有问题)?
注意:我没有在 FreeBSD 机器上安装任何窗口系统。
您要求设置
LC_ALL
,但我不确定您是否正确执行。FreeBSD 手册: 22.2实际上涵盖了所有内容。使用本地化我强烈建议您使用“登录类方法”(login.conf)而不是“Shell 启动文件方法”(.profile),因为它在系统和 shell 之间更加一致。
当人们说他们修改了与语言相关的设置时,他们经常忘记两件事:
/etc/login.conf
(系统范围)或~/.login.conf
(用户)时,您需要运行cap_mkdb才能产生任何效果!首先是通过运行命令 locale 来验证您的设置。在一个普通的 FreeBSD 系统上,它会告诉你这个:
使用这些设置,您将在最常见的终端上遇到 Unicode 问题。我正在使用 PuTTY,但无法将以下测试粘贴到终端中:
这是因为 FreeBSD 的默认设置是不使用 unicode。此答案已针对 11.2 进行了测试,但未来从 13 起,默认值为“C.UTF8”,无需更改。但是,在原版安装中,您可以通过将用户设置为使用“俄语”来进行非常快速的检查。原因是俄语是开箱即用的唯一语言(在 中
/etc/login.conf
),它使用的是 unicode。现在使用“johndoe”帐户(无论您的用户名为什么)登录到一个新会话。您现在可以将 unicode(来自上面的测试)粘贴到 shell 中。验证如何使用
locale
正如我现在已经验证了基本的 unicode 确实有效 - 然后我可以开始根据自己的喜好进行设置。由于我是丹麦人,我将执行以下简单步骤:
1.添加语言设置
对于我需要的每种语言,我将添加一个部分
/etc/login.conf
2.更新数据库
每当您编辑源 login.conf 时,都需要更新数据库。
3.设置用户语言
我通常
pw
用来管理我的用户。现在我只需要在创建或修改用户时指定语言。提示:我个人的偏好是不要更改系统范围的“默认”,而是保持默认。然后我为系统帐户设置语言,例如“postgres”。如果您的语言设置未涵盖系统帐户所需的非常具体的设置,那么我将为该帐户创建一个单独的“语言”(登录类)
/etc/login.conf
。这使事情保持整洁。提示2:上面显示了如何根据用户设置类。如果您想要系统范围的更改,您可以更改 login.conf 中的“默认”类。
PuTTY 提示:您的终端自然也需要支持 UTF-8。在 PuTTY 中,这是在设置中:Window ⮕ Translation。我的设置为“UTF-8”。如果您在 CJK 区域,您可能需要选中“Treat CJK ambiguous characters as wide”。西里尔文用户通常喜欢“Caps Lock 充当西里尔文开关”。