LC_ALL=ru_RU.CP1251 less ~/t/show_discounts.js
このCP1251ファイルを表示するように表示するのではなく、意味のない文字を表示します。
less
指定されたエンコーディングが正しく機能するようにするにはどうすればよいですか?
Debian Linux、Gnome Terminal、システム構成en_US.UTF-8
。
答え1
less
次に実行
LC_ALL=ru_RU.CP1251 less file
ru_RU.CP1251
そのロケールがシステムに存在する場合(LC_ALL=ru_RU.CP1251 locale charmap
CP1252が返されることを確認)、less
そのロケールにあります。これはfile
、対応する文字セットにエンコードされることを意味します。そして端末はこの文字セットを使用します。
端末エミュレータがUTF-8文字セットを持つロケールで起動すると、UTF-8でエンコードされた文字が予想されるため、対応するless
CP1251エンコーディング文字をどのように処理するかがわかりません。
また、そのロケールでターミナルエミュレータを起動する必要があるか、luit
それを使用して翻訳を実行できます(ターミナルの文字セットがUTF-8であると仮定)。
または、次のようにiconv
ファイルを端末のロケール文字セットに変換することもできます。
iconv -f CP1251 < file | less