web-dev-qa-db-ja.com

lsはキリル文字を正しく表示しません

キリル文字に問題があります。私の端末はキリル文字を正常に表示しますが、ほとんどのプログラムはこれまでに見つけた唯一の例外はlsです。通常のキリル文字の代わりに、?????? ???が表示されます。

MacOS Mojaveを実行しています。

スクリーンショットが含まれています。

terminalFinder

2
Victor
export LC_ALL=ru_RU.UTF-8

説明:まず、正しいロケールがインストールされていることを確認してください:

locale -a | egrep -i 'ru.*utf'
ru_RU.UTF-8

次に、正しいロケールを設定してみてください。私の最初の試みは次のとおりです。

export LC_ALL=ru_RU.UTF-8

そして、あなたは簡単なテストをすることができます:

( date; export LC_ALL=ru_RU.UTF-8 ; date +%c)
Fri Mar  8 08:08:50 -03 2019
пятница,  8 марта 2019 г. 08:08:50

次に、少し(?)より複雑なテストを行うことができます。

( date; \
    export LC_ALL=ru_RU.UTF-8 ; \
    d=$(date +%c | sed 's/ /_/g'); \
    mkdir /tmp/test; \
    echo $d > /tmp/test/$d.txt; \
    echo "with right locale:"; \
    ls -ltra /tmp/test ; \
    echo "with 'C' locale:"; \
    LC_ALL=C ls -ltra /tmp/test )
Fri Mar  8 08:14:19 -03 2019
with desired locale:
total 12
-rw-r--r--  1 vfalcao wheel  48 мар  8 08:13 пятница,__8_марта_2019_г._08:13:21.txt
-rw-r--r--  1 vfalcao wheel  48 мар  8 08:13 пятница,__8_марта_2019_г._08:13:38.txt
drwxrwxrwt 19 root    wheel 608 мар  8 08:13 ..
drwxr-xr-x  5 vfalcao wheel 160 мар  8 08:14 .
-rw-r--r--  1 vfalcao wheel  48 мар  8 08:14 пятница,__8_марта_2019_г._08:14:19.txt
with 'C' locale:
total 12
-rw-r--r--  1 vfalcao wheel  48 Mar  8 08:13 ??????????????,__8_??????????_2019_??._08:13:21.txt
-rw-r--r--  1 vfalcao wheel  48 Mar  8 08:13 ??????????????,__8_??????????_2019_??._08:13:38.txt
drwxrwxrwt 19 root    wheel 608 Mar  8 08:13 ..
drwxr-xr-x  5 vfalcao wheel 160 Mar  8 08:14 .
-rw-r--r--  1 vfalcao wheel  48 Mar  8 08:14 ??????????????,__8_??????????_2019_??._08:14:19.txt
3
vfalcao

ロケールをUTF-8文字を処理できるロケールに設定する必要があります。 Cロケールはそうすることができません(そうしません)。

1つのオプションは、ロケールをCに強制しているLC_*環境変数を削除することですが、根本的な問題に対処し、最初に正しく設定することをお勧めします。

unset $(set | sed -n '/^LC_/s/=.*//p')
1
roaima