AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 484832
Accepted
DannyNiu
DannyNiu
Asked: 2018-11-29 22:42:12 +0800 CST2018-11-29 22:42:12 +0800 CST 2018-11-29 22:42:12 +0800 CST

以 UTF-8 SSH 到 FreeBSD

  • 772

我正在尝试使用 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 机器上安装任何窗口系统。

ssh freebsd
  • 1 1 个回答
  • 2038 Views

1 个回答

  • Voted
  1. Best Answer
    Claus Andersen
    2018-11-30T06:43:11+08:002018-11-30T06:43:11+08:00

    您要求设置LC_ALL,但我不确定您是否正确执行。FreeBSD 手册: 22.2实际上涵盖了所有内容。使用本地化

    我强烈建议您使用“登录类方法”(login.conf)而不是“Shell 启动文件方法”(.profile),因为它在系统和 shell 之间更加一致。

    当人们说他们修改了与语言相关的设置时,他们经常忘记两件事:

    1. 更改/etc/login.conf(系统范围)或~/.login.conf(用户)时,您需要运行cap_mkdb才能产生任何效果!
    2. 并且在测试时记得开始一个新的会话!

    首先是通过运行命令 locale 来验证您的设置。在一个普通的 FreeBSD 系统上,它会告诉你这个:

    $ locale
    LANG=
    LC_CTYPE="C"
    LC_COLLATE="C"
    LC_TIME="C"
    LC_NUMERIC="C"
    LC_MONETARY="C"
    LC_MESSAGES="C"
    LC_ALL=
    

    使用这些设置,您将在最常见的终端上遇到 Unicode 问题。我正在使用 PuTTY,但无法将以下测试粘贴到终端中:

    ÆØÅ жз ઑ ᱵ
    

    这是因为 FreeBSD 的默认设置是不使用 unicode。此答案已针对 11.2 进行了测试,但未来从 13 起,默认值为“C.UTF8”,无需更改。但是,在原版安装中,您可以通过将用户设置为使用“俄语”来进行非常快速的检查。原因是俄语是开箱即用的唯一语言(在 中/etc/login.conf),它使用的是 unicode。

    pw usermod johndoe -L russian
    

    现在使用“johndoe”帐户(无论您的用户名为什么)登录到一个新会话。您现在可以将 unicode(来自上面的测试)粘贴到 shell 中。验证如何使用locale

    $ locale
    LANG=ru_RU.UTF-8
    LC_CTYPE="ru_RU.UTF-8"
    LC_COLLATE="ru_RU.UTF-8"
    LC_TIME="ru_RU.UTF-8"
    LC_NUMERIC="ru_RU.UTF-8"
    LC_MONETARY="ru_RU.UTF-8"
    LC_MESSAGES="ru_RU.UTF-8"
    LC_ALL=
    

    正如我现在已经验证了基本的 unicode 确实有效 - 然后我可以开始根据自己的喜好进行设置。由于我是丹麦人,我将执行以下简单步骤:

    1.添加语言设置

    对于我需要的每种语言,我将添加一个部分/etc/login.conf

    danish|Danish Users Accounts:\
            :charset=UTF-8:\
            :lang=da_DK.UTF-8:\
            :tc=default:
    

    2.更新数据库

    每当您编辑源 login.conf 时,都需要更新数据库。

    cap_mkdb /etc/login.conf
    

    3.设置用户语言

    我通常pw用来管理我的用户。现在我只需要在创建或修改用户时指定语言。

    pw useradd janedoe -L danish
    

    提示:我个人的偏好是不要更改系统范围的“默认”,而是保持默认。然后我为系统帐户设置语言,例如“postgres”。如果您的语言设置未涵盖系统帐户所需的非常具体的设置,那么我将为该帐户创建一个单独的“语言”(登录类)/etc/login.conf。这使事情保持整洁。

    提示2:上面显示了如何根据用户设置类。如果您想要系统范围的更改,您可以更改 login.conf 中的“默认”类。

    PuTTY 提示:您的终端自然也需要支持 UTF-8。在 PuTTY 中,这是在设置中:Window ⮕ Translation。我的设置为“UTF-8”。如果您在 CJK 区域,您可能需要选中“Treat CJK ambiguous characters as wide”。西里尔文用户通常喜欢“Caps Lock 充当西里尔文开关”。

    • 7

相关问题

  • Auto-SSH 手动工作,但不在后台工作

  • 远程运行 X 应用程序,在远程主机上运行 GUI [关闭]

  • rsync 端口 22 和 873 使用

  • SCP突然中止:管道损坏,消息验证码不正确

  • FreeBSD 的 sh:列出函数

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    ssh 无法协商:“找不到匹配的密码”,正在拒绝 cbc

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    如何卸载内核模块“nvidia-drm”?

    • 13 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Wong Jia Hau ssh-add 返回:“连接代理时出错:没有这样的文件或目录” 2018-08-24 23:28:13 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Bagas Sanjaya 为什么 Linux 使用 LF 作为换行符? 2017-12-20 05:48:21 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve