Versuch 1:
$ less subs.srt
"subs.srt" may be a binary file. See it anyway?
<C8><F2><E0><EB><FC><FF><ED> ...
Versuch 2:
$ LANG=ru_RU.CP1251 less subs.srt
����� �����, ��� ������.
��� ������� �������������! ...
Problemumgehung:
$ iconv -f cp1251 < subs.srt | less
Wie mache ich das bequem?
less
die Optionen in der Befehlszeile regelmäßig.Antworten:
less
Verwenden Sie luit (im Lieferumfang der X11-Dienstprogramm-Suite enthalten) , um eine andere Codierung als die des Terminals auszuführen .Wenn Sie die Codierung automatisch erkennen möchten, ist dies schwieriger, da eine Textdatei keinen Hinweis auf ihre Codierung enthält. Die Software Enca versucht, die Codierung einer Datei anhand ihrer Sprache zu erkennen:
Sie können diese Kombination zu einem
LESSOPEN
Filter machen (siehe Wie kann ich komprimierte Dateien in weniger anzeigen, ohne zless eingeben zu müssen? ). Dies führt möglicherweise nicht zu guten Ergebnissen für Text, der jedoch nicht auf Russisch ist.Wenn Sie nur UTF-8 und CP1251 verwenden, können Sie auf CP1251 zurückgreifen, wenn eine Datei nicht gültig ist. UTF-8 enthält „ Lücken “ in UTF-8, die dazu führen, dass die meisten Dateien in einer 8-Bit-Codierung nicht gültig sind UTF-8. Proof-of-Concept-Filterskript für
LESSOPEN
(funktioniert möglicherweise nicht auf anderen Systemen als Linux, dahead -c N
genau N Bytes gelesen werden müssen):quelle