시도 1:
$ less subs.srt
"subs.srt" may be a binary file. See it anyway?
<C8><F2><E0><EB><FC><FF><ED> ...
시도 2:
$ LANG=ru_RU.CP1251 less subs.srt
����� �����, ��� ������.
��� ������� �������������! ...
해결 방법:
$ iconv -f cp1251 < subs.srt | less
어떻게 하면 편리할까요?
답변1
less
터미널과 다른 인코딩으로 실행 하려면 다음을 사용하십시오.루잇(X11 유틸리티 제품군과 함께 제공됨)
LANG=ru_RU.CP1251 luit less subs.srt
인코딩을 자동으로 감지하려는 경우 텍스트 파일에는 인코딩에 대한 표시가 없기 때문에 더 까다롭습니다. 소프트웨어엔카언어를 기반으로 파일의 인코딩을 인식하려고 시도합니다.
$ enca -L russian subs.srt
MS-Windows code page 1251
$ iconv -f "$(enca -iL russian subs.srt)" | less
이 조합을 필터로 만들 수 있습니다 LESSOPEN
(참조:zless를 입력하지 않고도 gzip으로 압축된 파일을 어떻게 볼 수 있나요?예를 들어). 그러나 실제로 러시아어가 아닌 텍스트에 대해서는 좋은 결과를 얻지 못할 수도 있습니다.
UTF-8 및 CP1251만 사용하는 경우 파일이 삭제될 때 CP1251로 대체할 수 있습니다.유효한 UTF-8이 아닙니다— UTF-8에는 8비트 인코딩의 대부분의 파일이 유효한 UTF-8이 되지 않게 만드는 "구멍"이 있습니다. 개념 증명 필터 스크립트 ( 정확히 N 바이트 읽기 LESSOPEN
에 의존하기 때문에 Linux 이외의 시스템에서는 작동하지 않을 수 있음 ):head -c N
#!/bin/sh
head=$(head -c 1000)
if printf '%s\n' "$head" | grep -qav '^.*$'; then
{ printf '%s\n' "$head"; cat; } | iconv -f CP1251
else
{ printf '%s\n' "$head"; cat; }
fi