Берем скрипт:
$ cat test.tcl
set test "Привет"
puts stdout [encoding system]
set testenc1 [encoding convertto cp1251 $test]
set testenc2 [encoding convertto koi8-r $test]
puts stdout $test
puts stdout $testenc1
puts stdout $testenc2
$ tclsh8.5 test.tcl
utf-8
Привет
Ïðèâåò
ðÒÉ×ÅÔ
$ tclsh8.5 test.tcl
utf-8
Привет
Ïðèâåò
ðÒÉ×ÅÔ
$ tclsh8.5 test.tcl
utf-8
п÷я─п╦п╡п╣я┌
ц▐ц╟ц╗ц╒ц╔ц╡
ц╟ц▓ц┴ц≈ц┘ц■
И собственно вопрос: почему encoding не правильно конвертирует строку в соответствующую кодировку? Я не думаю что дело в терминале (konsole) потому что в других случаях он с кодировками работает правильно (например, если установить кодировку на cp1251 и сделать cat на текстовый файл в этой кодировке, то русский текст отображается правильно). Или я не правильно понимаю как должен работать encoding?