![]() |
|
Модераторы: ginnie, korob2001 |
![]()
|
|
| shamber |
|
||||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1422 Регистрация: 5.9.2006 Где: Россия Репутация: 1 Всего: 18 |
Привет Всем.
Возник следующий вопрос. Есть у меня приложение perl\TK. Очень простое
Оно открывает диалог выбора файла и далее юзер выбирает нужный файл. Далее я парсю этот xml. примерно так.
Проблема возникает, как можно догадаться из названия, при попытке открыть файлы с русскими буквами в пути. Пишет что
Хотя если вызвать print ($file) то на выходе мы получим. Строчка будет выведена, но будет предупреждение
при этом если я просто присвою переменной $file = "C:/май/ВКМ/25.xml". Файл замечательно откроется. Расскажите что делать ??? |
||||||||
|
|||||||||
| nitr |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2543 Регистрация: 10.2.2006 Где: Россия :) Репутация: 2 Всего: 84 |
shamber, думаю вам надо или заюзать use locale, или скорее всего меняйте кодировку переменной с именем файла... если у вас Windows, то из cp1251 в cp866.
|
|||
|
||||
| shamber |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1422 Регистрация: 5.9.2006 Где: Россия Репутация: 1 Всего: 18 |
То что проблемы с кодировкой это я точно понимаю
подскажите как Как Вы наверное знаете есть такая тема use Cyrillic::CPconvert; и use Cyrillic::CPdetect; так вот. когда я пытаюсь определить кодировку для
он прекрасно определяет в какой кодировке строка. а вот когда я пытаюсь также определить кодировку для $file полученую из Tk. то автодетект обламывается. В результате я не знаю из чего во что перекодировать. Вот и не знаю что делать. |
|||
|
||||
| nitr |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2543 Регистрация: 10.2.2006 Где: Россия :) Репутация: 2 Всего: 84 |
ну ты что
в этом духе Добавлено через 2 минуты и 6 секунд или наоборот, он мог получить файл в cp866, и тебе надо её в cp1251 $file = Encode::encode('cp1251', Encode::decode('cp866', $file)); |
|||
|
||||
| shamber |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1422 Регистрация: 5.9.2006 Где: Россия Репутация: 1 Всего: 18 |
Блин умирает с надписью Wide character in subroutine entry at C:/perl/lib/Encode.pm line 166.
Вот это Wide character напрягает. |
|||
|
||||
| nitr |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2543 Регистрация: 10.2.2006 Где: Россия :) Репутация: 2 Всего: 84 |
дык
вот держи решение проблемы
;) |
|||
|
||||
| shamber |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1422 Регистрация: 5.9.2006 Где: Россия Репутация: 1 Всего: 18 |
позор мне. позор.....
Спасибо поиск оказывается все также рулит |
|||
|
||||
| nitr |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2543 Регистрация: 10.2.2006 Где: Россия :) Репутация: 2 Всего: 84 |
ну не позор, а некоторые недочёты
все мы чему-то учимся ;) |
|||
|
||||
![]()
|
| Правила форума "Perl: Системное программирование" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Системное программирование | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |