Модераторы: ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как Tk заставить понимать кирилицу? 
:(
    Опции темы
korob2001
Дата 4.9.2004, 12:40 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: нет
Всего: 61



Ну вопрос собсвенно в названии темы.
OS: WinXP Pro

Заранее спасибо,
Денис


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
ElectricalStorm
Дата 5.9.2004, 18:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 547
Регистрация: 22.1.2004

Репутация: нет
Всего: 9



можно попробовать хранить данные в utf а потом налету када поднимается гуй транслировать все в cp-1251
модули трансляции на спане


--------------------
Нужно знать инструмент, которым пользуешься
PM MAIL   Вверх
korob2001
Дата 5.9.2004, 18:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: нет
Всего: 61



OK. Попробую описать проблему подробнее.
Вот для примера набросал простейший код. Например такой:
Код

#!/usr/bin/perl -w
use strict;
use warnings;
use Tk;
my $txt;
my $file = 'mainSave.txt';
my $time = localtime;
my $mainWindow = new MainWindow;
  $mainWindow->title("My Test Window");
  $mainWindow->geometry("300x110+300+200");
my $fram1 = $mainWindow->Frame( -padx => 15,
                               -pady => 15 )->pack;
my $label = $fram1->Label( -text => 'Please enter your message: ' )->pack( -side => 'left' );
my $entry = $fram1->Entry( -textvariable => \$txt )->pack( -side => 'left' );
my $fram2 = $mainWindow->Frame( -padx => 15,
                               -pady => 15 )->pack;
my $butt2 = $fram2->Button( -text => 'Save to file',
                           -command => sub {
                                            my $mess = $txt;
                                            my $file = $file;
                                            my $time = $time;
                                            SaveToFile( $mess, $file, $time );
                                       } )->pack( -side => 'left' );
my $butt1 = $fram2->Button( -text => 'Exit',
                                -command => sub { exit } )->pack( -side => 'right' );
sub SaveToFile {
   my( $mess, $file, $time ) = @_;
   local *F;
   open( F, ">> $file" ) or die "Can't open file '$file': $!\n";
    print F "$mess|$time\n";
   close( F ) or die "Can't close file '$file': $!\n";
}

MainLoop;

Необходимо надписи Exit и Save to file на кнопках, а также строку Please enter your message заменить на аналогичные русские.
Добавлено @ 19:01
ElectricalStorm Ой, пока я писал, ты уже ответил.
Не можешь подробнее объяснить. Я пробовал перекодировать строки с помощью самодельного класса в несколько кодировок, такие как koi8r, Dos, Iso и т.п., но ничего не вышло. Может ты знаешь какую кодировку юзает Tk?


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
ElectricalStorm
Дата 6.9.2004, 09:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 547
Регистрация: 22.1.2004

Репутация: нет
Всего: 9



ща попробую


--------------------
Нужно знать инструмент, которым пользуешься
PM MAIL   Вверх
ElectricalStorm
Дата 6.9.2004, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 547
Регистрация: 22.1.2004

Репутация: нет
Всего: 9



блин Unicode::UTF8 не встает сволочь.... sad.gif
Добавлено @ 11:40
вечером еще попробую

вот тут посмотрите .... что то похожее
http://www.mail-archive.com/perl-win32-use...m/msg29099.html



--------------------
Нужно знать инструмент, которым пользуешься
PM MAIL   Вверх
korob2001
Дата 6.9.2004, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: нет
Всего: 61



Цитата

вот тут посмотрите .... что то похожее

Да похоже, но помоему не то.
Вот открыл файл Tk.pm, нашёл такой хэш:
Код

our %font_encoding = ('jis0208' => 'jis0208-raw',
                     'jis0212' => 'jis0212-raw',
                     'ksc5601' => 'ksc5601-raw',
                     'gb2312'  => 'gb2312-raw',
                     'unicode' => 'ucs-2le',
                    );

Может разгадка в нём? Но проблема в том, что я с такими кодировками не сталкивался раньше, кроме unicode. Может кто знает как их перекодировать?


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
Guest
Дата 16.11.2004, 19:26 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











еще разок
use encoding "ru_RU.CP1251";

  Вверх
korob2001
Дата 17.11.2004, 01:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: нет
Всего: 61



Ещё разок, СПАСИБО. ;)
Я уже стал сомневаться в том, что Tk можно научить распознавать кирилицу.

Это сообщение отредактировал(а) korob2001 - 17.11.2004, 01:52


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
...
Дата 9.11.2005, 17:15 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











огромнючее спасибо.
  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: GUI | Следующая тема »


 




[ Время генерации скрипта: 0.0475 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.