Недавно решил попробовать попользоваться из Perl библиотеками Gtk2 (пакет Gtk2-Perl) и возникли проблемы с кодировками. Если использовать обычные строки при создании виджетов, то в какой бы кодировке они не были (koi8, cp1251, utf-8) на виджете вместо русского "крякозябры". Нашел единственный выход в использовании функции Unicode::String::utf8($str), где $str - строка, набранная в редакторе при использовании кодировки utf-8. В этом случае программа выглядит так:
$window = Gtk2::Window->new(Unicode::String::utf8("русский текст в utf-8"));
Еще хуже ситуация, когда в виджет надо вывести информацию, которая хранится в кодировке koi8-r, тогда приходится перекодировать ее в utf-8:
my $cd = Locale::Recode->new (from => 'KOI8-R',
to => 'UTF-8');
...
$cd->recode ($row[$i]);
$model->set_value($iter, $i, Unicode::String::utf8($row[$i]));
Я не совсем понимаю действие функции Unicode::String::utf8 и если можно подскажите, может быть эта задача должна решаться другим способом.
![](/img/p.gif)
![](/photos/8918.jpg)
Ответ на:
комментарий
от geekkoo
![](/img/p.gif)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Русские man в MDK-10.1 (2005)
- Форум id3lib (2005)
- Форум проблема с unicode в Gentoo (2008)
- Форум Вышел rakudo 2017.09 - реализация Perl 6 (2017)
- Форум gtk2-perl (2007)
- Форум PERL кодировка (2012)
- Форум perl, gtk2 и кракозябры (2007)
- Форум [perl] Победить кодировки (2009)
- Форум Perl и кодировки (2007)
- Форум perl и кодировки (2006)