У меня Slackware, системная кодировка по умолчанию ISO-8859-1 (append=" vt.default_utf8=0" в lilo.conf).
В целом систему я специально не русифицировал, поэтому если файл на русском, то
$ cat in.txt
выдает кракозябры. Но, я помню, что когда разбирался с проблемой русификации, то понял схему, как выводить на консоль файлы, созданные в винде (то есть в кодировке cp1251). Идея очень простая - берется юникод шрифт cyr-sun16 и загружается таблица преобразования из юникода в cp1251. Раньше как я понимаю это делалось с помощью трюков с mapscrn, а теперь setfont может загружать таблицу преобразования сам. В сухом остатке: после вызова
$ setfont -v cyr-sun16 -m cp1251_to_uni
Loading symbolic screen map from file /usr/share/kbd/consoletrans/cp1251_to_uni.trans
Loading 256-char 8x16 font from /usr/share/kbd/consolefonts/cyr-sun16.psfu.gz
Loading Unicode mapping table...
можно было спокойно набрать в консоли
$ cat in.txt
и получить текст в кириллице. теперь вместо этого вылезают просто квадратики.
я в бешенстве. точно помню, что раньше работало. это ведь голый линукс, без иксов. какого хрена сломалось? может есть идеи?