端末ディスプレイはASCIIではありませんか? UTF-16 16進コードの文字

端末ディスプレイはASCIIではありませんか? UTF-16 16進コードの文字
todoroki@todoroki-VJZ13B ~>printf "ä\n"
                           echo "ä"
                           ä
ä
ä
\udcc3\udca4: \u30b3\u30de\u30f3\u30c9\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093

によるとUTF-16デコードツール\u30b3\u30de\u30f3\u30c9\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093is コマンドが見つかりません(= "コマンドが見つかりません")、これは私が期待する正しい日本語出力です。

printfとechoの結果を見ると、UTF-8が正常に動作しているようです。

これはすべてのシェル出力で発生します。たとえば、lsファイル名の日本語文字はUTF-16 16進数で表されます。
編集する: ls出力はutf-16ではありませんが、「8進エスケープシーケンス」(になります\346\234\210)です。

lsC、および:という名前の3つのフォルダを含むあいうディレクトリ

todoroki@todoroki-VJZ13B ~/test> ls -l
total 12
drwxr-xr-x 3 todoroki todoroki 4096 10月  4 15:02  C/
drwxr-xr-x 2 todoroki todoroki 4096 10月 11 09:04 ''$'\343\201\202\343\201\204\343\201\206'/
drwxr-xr-x 2 todoroki todoroki 4096 10月 11 09:05 ''$'\346\234\210'/

(ファイル作成日はちゃんと出てくるのにディレクトリ名は出てこないから変ですね)

less vi nano動作はさらに奇妙です。以下のファイル(a.txt、geditを使用して生成されます)


ä

次のように表示されます。

less(それは文句を言う)"a.txt" may be a binary file. See it anyway?

<E3><81><82>
<E3><81><84>
<E3><81><86>
<C3><A4>

存在するvi

�~A~B
�~A~D
�~A~F
ä

そしてnano

 ^a^b
 ^a^d
 ^a^f

私は何をしたのか覚えていませんが、少なくとも2日前(そして6ヶ月以上前)には日本語の文字が正しく表示されました。

何が問題であり、どのように回復できますか?

ベストアンサー1

誤ってfish設定ファイルを次の行に読み込むように~/.profile更新
しましたlocale=C

に変更したところ、locale=C_UTF8すべてが復元されました。

おすすめ記事