コードページを理解しにくくする方法は?

コードページを理解しにくくする方法は?
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 charmapCP1252が返されることを確認)、lessそのロケールにあります。これはfile、対応する文字セットにエンコードされることを意味します。そして端末はこの文字セットを使用します。

端末エミュレータがUTF-8文字セットを持つロケールで起動すると、UTF-8でエンコードされた文字が予想されるため、対応するlessCP1251エンコーディング文字をどのように処理するかがわかりません。

また、そのロケールでターミナルエミュレータを起動する必要があるか、luitそれを使用して翻訳を実行できます(ターミナルの文字セットがUTF-8であると仮定)。

または、次のようにiconvファイルを端末のロケール文字セットに変換することもできます。

iconv -f CP1251 < file | less

関連情報