코드 페이지를 덜 이해하게 만드는 방법은 무엇입니까?

코드 페이지를 덜 이해하게 만드는 방법은 무엇입니까?
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로 인코딩된 문자를 예상하므로 less해당 CP1251 인코딩 문자를 어떻게 처리할지 알 수 없습니다.

또한 해당 로케일에서 터미널 에뮬레이터를 시작해야 하거나 luit이를 사용하여 번역을 수행할 수 있습니다(터미널의 문자 집합이 UTF-8이라고 가정).

또는 다음 iconv을 사용하여 파일을 터미널의 로캘 문자 집합으로 변환할 수 있습니다.

iconv -f CP1251 < file | less

관련 정보