more、cat、lessでサポートされている文字エンコーディング

more、cat、lessでサポートされている文字エンコーディング

次のようにエンコードされたテキストファイルがありますfile

CRLF行終端を持つISO-8859テキスト

ファイルにはアクセント付きのフランス語のテキストが含まれています。私のシェルはアクセントを表示でき、emacsコンソールモードで正しく表示されます。

私の問題は、ツールがファイルを正しく表示できないことmoreです。私はこれがツールがこの文字エンコーディングセットをサポートしていないことを意味すると思います。これは本当ですか?このツールはどの文字エンコーディングをサポートしますか?catless

ベストアンサー1

シェルはおそらくUTF-8を使用しているため、アクセントなどを表示できます。問題のファイルが別のエンコーディングになっており、less moreUTFcatで読み取ろうとすると失敗します。次のコマンドを使用して、現在のエンコーディングを確認できます。

echo $LANG

2つのオプションがあります。デフォルトのエンコーディングを変更したり、ファイルをUTF-8に変更したりできます。エンコードを変更するには、端末を開き、次のように入力します。

export LANG="fr_FR.ISO-8859"

たとえば、

$ echo $LANG 
en_US.UTF-8
$ cat foo.txt 
J'ai mal � la t�te, c'est chiant!
$ export LANG="fr_FR.ISO-8859"
$ xterm <-- open a new terminal 
$ cat foo.txt 
J'ai mal à la tête, c'est chiant!

あるいは、同様のものを使用する場合は、gnome-terminalエンコードを有効にする必要があります。たとえば、terminator右クリックして次のようにします。

ここに画像の説明を入力してください。

のためgnome-terminal

ここに画像の説明を入力してください。

他の(より良い)オプションは、ファイルのエンコーディングを変更することです。

$ cat foo.txt 
J'ai mal � la t�te, c'est chiant!
$ iconv -f ISO-8859-1 -t UTF-8  foo.txt > bar.txt
$ cat bar.txt 
J'ai mal à la tête, c'est chiant!

おすすめ記事