在 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.appTERM設定為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設定似乎已經解決了問題。儘管我對要讓這項工作正確進行所需的調整方向感到困惑。

相關內容