Здравствуйте, _const_, Вы писали:
__>Ты не поверишь... Дело, разумеется, не в ОС, а в инструменте — многие кодировку определяют самостоятельно.
Дело в том, что в линупсе принято не один большой огромный инструмент делать, а кучу мелких, каждый из которых выполняет свою работу. Это позволяет избежать копипаста кода при программировании, позволяет легче поддерживать актуальность каждого инструмента, позволяет при скриптовании явно видеть как именно будут обрабатываться данные.
Впрочем...
spc /tmp # ls hi*
hi.cp1251.txt hi.txt hi.utf-16.txt
spc /tmp # cat hi.utf-16.txt
��?@825B
spc /tmp # cat hi.txt
привет
spc /tmp # cat hi.cp1251.txt
������
spc /tmp # enca hi*
hi.cp1251.txt: MS-Windows code page 1251
LF line terminators
hi.txt: Universal transformation format 8 bits; UTF-8
Doubly-encoded to UTF-8 from KOI8-R
hi.utf-16.txt: Universal character set 2 bytes; UCS-2; BMP
LF line terminators
Byte order reversed in pairs (1,2 -> 2,1)
spc /tmp # cat hi.cp1251.txt | enca -c
привет
spc /tmp # cat hi.txt | enca -c
привет
spc /tmp # cat hi.utf-16.txt | enca -c
привет