在 Bash CLI 中输入 UTF-8 字符

在 Bash CLI 中输入 UTF-8 字符

我有一个包含如下文件的目录列表:

drwxr-xr-x   2 nobody nogroup       4096 2011-01-11 21:06 Капкан
drwxr-xr-x   3 nobody nogroup       4096 2011-11-17 08:40 СБПЧ

当我复制/粘贴或直接将这些文件名输入到提示中时,我希望能够像使用 Latin-1 字母一样使用它们。

相反,我得到如下结果:

# Pasting "Капкан"
$ :?апкан 

您会看到第一个字母被“ :?”替换。然后,我无法遍历左侧的字符,除非删除它们。基于键盘的输入会产生相同的结果。tmuxscreen复制/粘贴也会产生相同的结果。

我不知道该如何诊断这种情况!这是一个相当古老的 Debian 发行版 ( $ uname -a Linux weezy 2.6.37.6.RNx86_32.1.4 #1 Thu Jul 26 04:49:29 PDT 2012 i686 GNU/Linux),但我仍然认为有一种方法可以让 UTF-8 文件名按照我期望的方式运行。

我正在使用 OS XTerminal.app并且TERM设置为xterm-color

我相信这些文件名是使用 UTF-8 编码的。我使用的是 Bash 3.1.17,以下是我的输出locale

$ locale
LANG=
LC_CTYPE="en_US.utf8"
LC_NUMERIC="en_US.utf8"
LC_TIME="en_US.utf8"
LC_COLLATE="en_US.utf8"
LC_MONETARY="en_US.utf8"
LC_MESSAGES="en_US.utf8"
LC_PAPER="en_US.utf8"
LC_NAME="en_US.utf8"
LC_ADDRESS="en_US.utf8"
LC_TELEPHONE="en_US.utf8"
LC_MEASUREMENT="en_US.utf8"
LC_IDENTIFICATION="en_US.utf8"
LC_ALL=en_US.utf8

这是我的输出$ locale -a

C
de_DE.utf8
en_US.utf8
ja_JP.utf8
ko_KR.utf8
nl_NL.utf8
POSIX
zh_CN.utf8
zh_TW.utf8

我会考虑ru_RU.UTF-8从安装/etc/locale.gen,但我对基本的拉丁字符也遇到了麻烦,例如á

答案1

根据上述评论,调整 Terminal.appEscape non-ASCII characters设置似乎解决了问题。但我对需要调整哪些方面才能使其正常工作感到困惑。

相关内容