
次のようなファイルを含むディレクトリ リストがあります:
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 "Капкан"
$ :?апкан
最初の文字が「 」に置き換えられているのがわかります:?
。その後、文字を削除する以外に、文字を左に移動することはできません。キーボードベースの入力でも同じ結果になります。tmux
または、screen
ヤンク/貼り付けでも同じ結果になります。
この状況をどのように診断すればよいかわかりません。これはかなり古い 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 X を使用しておりTerminal.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.app のEscape non-ASCII characters
設定をいじることで問題は解決したようです。ただし、これを正しく動作させるために、どのような調整が必要だったのかについては、まだよくわかっていません。