URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 5979
[ Назад ]

Исходное сообщение
"Русский язык в приложениях Tcl..."

Отправлено AKazak , 03-Дек-06 00:27 
Здравствуйте!

Подскажите пожалуйста, как задать кодировку, в которой wish выводит на экран русские символы???
У меня при запуске такого приложения, метка на экране отображается "иероглифами":

#!/usr/bin/wish
label .l -text "Привет!"
pack .l -side left

Заранее БОЛЬШОЕ СПАСИБО!!!


Содержание

Сообщения в этом обсуждении
"Русский язык в приложениях Tcl..."
Отправлено MKuznetsov , 03-Дек-06 03:33 
>Здравствуйте!
>
>Подскажите пожалуйста, как задать кодировку, в которой wish выводит на экран русские
>символы???
>У меня при запуске такого приложения, метка на экране отображается "иероглифами":
>
>#!/usr/bin/wish
>label .l -text "Привет!"
>pack .l -side left
>
>Заранее БОЛЬШОЕ СПАСИБО!!!

wish пытается всё выводить в системной кодировке (внутри у него unicode),
которая у вас системная можно посмотреть puts [ encoding system ]
если выдало кривое значение, то скорее всего у вас windows :)
какая то есть путаницца между cp1251-cp1252 :)
сменить кодировку соотв. encoding system enc_name
(вообщем man n encoding)
как вариант - правильно настроить системную локаль, чтобы исходный файл правильно читался

ещё возможно кривые шрифты, но я такой экзотики не встречал уже лет 5 :)
можно попробовать label .l -text "Потестить" -font Courier


"Русский язык в приложениях Tcl..."
Отправлено AKazak , 03-Дек-06 11:56 
>
>wish пытается всё выводить в системной кодировке (внутри у него unicode),
>которая у вас системная можно посмотреть puts [ encoding system ]
>если выдало кривое значение, то скорее всего у вас windows :)
>какая то есть путаницца между cp1251-cp1252 :)
>сменить кодировку соотв. encoding system enc_name
>(вообщем man n encoding)
>как вариант - правильно настроить системную локаль, чтобы исходный файл правильно читался
>
>
>ещё возможно кривые шрифты, но я такой экзотики не встречал уже лет
>5 :)
>можно попробовать label .l -text "Потестить" -font Courier

Большое Вам спасибо за Скорый ответ!
Ваш ответ оказался очень полезным для меня, а тем более поучительным, так как тему Tcl программирования в Linux я начал разбирать совсем недавно. С вашего позволения я дам развернутое описание того, что у меня получилось и вопросов, которые у меня появились:

1) команды вид "label .l -text "Потестить" -font Название шрифта" давали те же самые иероглифы только в различных шрифтах.
2) команда encoding system дала iso8859-1...
3) попытка командой encoding system koi8-r или encoding system iso8859-5 привела к показу метки в других иероглифах...
4) корректно сработала команда label .l -text [encoding convertfrom koi8-r "Привет!"]
5) локаль у меня такая: LANG=ru, все остальное = С.
6) шрифты в X правильно, так что русские буквы везде отображаются.

В связи с этими наблюдениями у меня появились следующие вопросы, на которые я вас прошу ответить:

1) что в предложенной команде man n encoding означает параметр n??? Первый раз в своей практике я встречаю такой синтаксис команды man...

2) как изначально настроить wish таким образом, чтобы не надо было постоянно пользоваться командой encoding convertfrom koi8-r??? Можно ли задать кодировку source'а из .Xdefaults?

3) если не секрет, как вы обнаружили информацию про encoding в Tcl??? Можете посоветовать какую-либо литературу по работе в Tcl с русским языком?  

Заранее Благодарен за Ответ!


"Русский язык в приложениях Tcl..."
Отправлено AKazak , 03-Дек-06 17:01 
Извините пожалуйста, я ошибся - пункт 3) следует читать так:

3) попытка командой encoding system koi8-r привела к правильному отображению метки в русских символах...

в связи с этим вопрос 2) перефразируется:

2) как изначально настроить wish таким образом, чтобы не надо было постоянно пользоваться командой encoding system koi8-r??? Можно ли задать кодировку source'а, то есть значение encoding system из .Xdefaults?


Заранее Благодарен за Ответ!


"Русский язык в приложениях Tcl..."
Отправлено vt , 03-Дек-06 17:21 
>3) попытка командой encoding system koi8-r привела к правильному отображению метки в
>русских символах...
>
>в связи с этим вопрос 2) перефразируется:
>
>2) как изначально настроить wish таким образом, чтобы не надо было постоянно
>пользоваться командой encoding system koi8-r??? Можно ли задать кодировку source'а, то
>есть значение encoding system из .Xdefaults?

Tcl, в отличие от Tk, не имеет никакого отношения к X-серверу, а значит к .Xdefaults
Попробуйте установить LANG=ru_RU.koi8r
LANG=ru - это X-овый алиас локали

Вообще же, при правильно настроенной локали, никаких проблем с русским в Tcl/Tk нет,
даже при генерации postscript-a из canvas.


"Русский язык в приложениях Tcl..."
Отправлено AKazak , 03-Дек-06 20:56 
>Tcl, в отличие от Tk, не имеет никакого отношения к X-серверу, а
>значит к .Xdefaults
>Попробуйте установить LANG=ru_RU.koi8r
>LANG=ru - это X-овый алиас локали
>
>Вообще же, при правильно настроенной локали, никаких проблем с русским в Tcl/Tk
>нет,
>даже при генерации postscript-a из canvas.

Большое ВСЕМ СПАСИБО!!!
Проблема была решена с помощью описанного выше рецепта!

Вот источник дополнительной информации по этой теме: http://www.sensi.org/~alec/locale/

Скажите пожалуйста напоследок, какая книга/сайт содержит самую полную информацию по Tcl/Tcl/Tclx??


"Русский язык в приложениях Tcl..."
Отправлено MKuznetsov , 03-Дек-06 21:37 
>>Tcl, в отличие от Tk, не имеет никакого отношения к X-серверу, а
>>значит к .Xdefaults
>>Попробуйте установить LANG=ru_RU.koi8r
>>LANG=ru - это X-овый алиас локали
>>
>>Вообще же, при правильно настроенной локали, никаких проблем с русским в Tcl/Tk
>>нет,
>>даже при генерации postscript-a из canvas.
>
>Большое ВСЕМ СПАСИБО!!!
>Проблема была решена с помощью описанного выше рецепта!
>
>Вот источник дополнительной информации по этой теме: http://www.sensi.org/~alec/locale/
>
>Скажите пожалуйста напоследок, какая книга/сайт содержит самую полную информацию по Tcl/Tcl/Tclx??

www.tcl.tk и wiki.tcl.tk
на русском была книга "правктическое программирование на Tcl/tk" - может ещё есть в книжных