![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| TwiSteR |
|
|||
![]() Кибер красавчег ![]() Профиль Группа: Участник Сообщений: 231 Регистрация: 15.6.2005 Где: World->Russia Репутация: нет Всего: 2 |
Доброго времени суток всем,
Имеется нужда добиться русских букв в stdout Отсюда How to ??? --------------------
|
|||
|
||||
| chaos |
|
|||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 6 Всего: 44 |
на сколько я понимаю тебе надо перед вывдодм текста в стдоут конвертнуть из одной кодировки в другую
почитай про транслитерацию tr Это сообщение отредактировал(а) chaos - 16.6.2005, 07:06 |
|||
|
||||
| Ivan Kolesnikov |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 9.3.2005 Где: г. Новокузнецк Репутация: 3 Всего: 6 |
Скорее всего программируешь под Windows, все дело в том, что в консоле кодировка oem866, а ты пишешь наверное под Win1251. Выхода 2: или пиши под oem866 или если нужно получить просто понятное русское сообщение в консоле перенаправляй весь вывод в файл:
А проще всего на мой взгляд выучить английский --------------------
|
|||
|
||||
| TwiSteR |
|
||||
![]() Кибер красавчег ![]() Профиль Группа: Участник Сообщений: 231 Регистрация: 15.6.2005 Где: World->Russia Репутация: нет Всего: 2 |
Да
Я то его знаю прекрасно (довелось пожить за рубежом), а вот что делать с юзерами ?! --------------------
|
||||
|
|||||
| nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: нет Всего: 43 |
> а вот что делать с юзерами ?!
perldoc Tk - самое сложное решение, юзвери-то еще и не консольные ;) |
|||
|
||||
| TwiSteR |
|
||||
![]() Кибер красавчег ![]() Профиль Группа: Участник Сообщений: 231 Регистрация: 15.6.2005 Где: World->Russia Репутация: нет Всего: 2 |
Юзверю надо вывести сообщение в консоли после отработки программы, мол так и так выполнено успешно или нет Добавлено @ 13:53
Сенкс буду изучать --------------------
|
||||
|
|||||
| nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: нет Всего: 43 |
>Юзверю надо вывести сообщение в консоли после отработки программы, мол так и так выполнено успешно или нет
опс, я вроде прогнал... =( в Tk они тоже кракозябликами... =( |
|||
|
||||
| korob2001 |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 31 Всего: 61 |
Вобщем, что бы больше не возникало такого вопроса написал такой маленьки модуль, который перегоняет строки в DOS кодировку и обратно. Документировать его я не стал, потому как пользоваться им достаточно легко. Внизу сообщения прикреплён файл, качаешь его, распаковываешь, затем распакованный файл Decoder.pm кидай в библиотечный каталог:
Если ты не знаешь какой каталог является библиотечным, то введи в командной строке такую команду: C:\>perl -V После чего в самом низу увидишь примерно такие строки:
Вот это и есть библиотечные каталоги. Теперь кидаешь в один из этих каталогов файл Decoder.pm С этого момента модуль будет готов к использованию. Открывем редактор и пишем такую программу:
Если необходимо перевести строку в win1251, то делаем это точно так же, как и в примере выше, только вместо to_dos пишем to_win. Удачи. Зы: Предлагаю совместными усилиями доделать этот модуль, т.е. добавить конвертацию строки и в другие известные кодировки, документировать его в POD формате. После чего выложим его в раздел Исходники, который находится рядом с FAQ. Я конечно могу и сам это сделать, но тогда придётся подождать, так как времени сейчас практически нет, потому, пока, могу лишь поувствовать вместе с вами. Это сообщение отредактировал(а) korob2001 - 16.6.2005, 19:07 Присоединённый файл ( Кол-во скачиваний: 16 )
Decoder.zip 0,36 Kb-------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
||||
|
|||||
| TwiSteR |
|
|||
![]() Кибер красавчег ![]() Профиль Группа: Участник Сообщений: 231 Регистрация: 15.6.2005 Где: World->Russia Репутация: нет Всего: 2 |
korob2001 Впереди планеты всей !!!
Спасибо !!! --------------------
|
|||
|
||||
| Vaneska |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 141 Регистрация: 15.3.2005 Где: Москва Репутация: 3 Всего: 4 |
А можно про модуль по подробней?
что означает вот этот регексп?
--------------------
http://isokolov.blogspot.com/ |
|||
|
||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 31 Всего: 61 |
Это не регексп, это транслитерация подобная tr///; Здесь сложного ничего нет, транслитерация проходит строку символ за символом и заменяет его на соответствующий, который стоит во второй его части.
Например если есть строка Hello, нам нужно перевести все буквы l, в верхний регистр.:
Вобщем tr/// и y/// это одно и то же. Это сообщение отредактировал(а) korob2001 - 19.6.2005, 11:18 -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
| kostofffan |
|
|||
|
Unregistered |
korob2001, а ты бы не мог выложить сюда листинг модуля. А то что-то ваши правила по скачиванию... :(((((((
|
|||
|
||||
| korob2001 |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 31 Всего: 61 |
Пожалуйста:
-------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
||||
|
|||||
| Vaneska |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 141 Регистрация: 15.3.2005 Где: Москва Репутация: 3 Всего: 4 |
korob2001, я так понимаю, что "\200" - это код символа, а "-" перечистение, типа 0..9?
--------------------
http://isokolov.blogspot.com/ |
|||
|
||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 31 Всего: 61 |
Да. Если запустить этот код на выполнение,
на выходе получишь строку "ПРИВЕТ МИР!" Это сообщение отредактировал(а) korob2001 - 20.6.2005, 12:42 -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
| chaos |
|
|||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 6 Всего: 44 |
консольная команда меняющая кодировку на сеанс chcp 1251
chcp выводит текущую кодировку |
|||
|
||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 31 Всего: 61 |
Ничего не выйдет, попробуй запусти этот код:
-------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
| chaos |
|
||||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 6 Всего: 44 |
ну запустил, вот результат: C:\>test.pl Текущая кодовая страница: 1251 Привет мир! Текущая кодовая страница: 866 и на оборот C:\>test.pl Текущая кодовая страница: 866 ╧ЁштхЄ ьшЁ! Текущая кодовая страница: 1251 так что все работает |
||||
|
|||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 31 Всего: 61 |
Я так и запускаю, но кирилицы я так и не заметил.
-------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
| chaos |
|
|||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 6 Всего: 44 |
или мне домой уже пора идти с работы или чего то я не допонимю, у нас результаты разные или что? |
|||
|
||||
| sharq |
|
|||
![]() Perl Liker ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 13.12.2004 Где: Ростов-на-Дону Репутация: 23 Всего: 28 |
korob2001, не хочу растраивать, но такой модуль уже существует - cyrillic.
Работает очень хорошо! Кстати, с подобной проблемой сам сталкивался. Это сообщение отредактировал(а) sharq - 21.6.2005, 18:40 -------------------- [color=gray]There's More Than One Way To Do It[/color] |
|||
|
||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 31 Всего: 61 |
sharq - это понятно, просто иногда полезно делать что-нить ручками, да бы развиваться.
-------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
| sharq |
|
|||
![]() Perl Liker ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 13.12.2004 Где: Ростов-на-Дону Репутация: 23 Всего: 28 |
korob2001 согласен. Развиваться всегда надо.
Скажи, как перевестирусские прописные буквы в заглавные, используя рег эксп. Для латиницы - понятно (\L\u), вот для кириллицы - не подходит. Я эту проблему решил в лоб: через хеш. -------------------- [color=gray]There's More Than One Way To Do It[/color] |
|||
|
||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 31 Всего: 61 |
sharq - а почему бы для этого не создать отдельный топик??? Ведь человек задал здесь абсолютно другой вопрос. TwiSteR - тебя это тоже касается.
sharq - А если по существу, просто подключи use locale, после чего заюзай встроенные функции ucfirst(), uc(), lcfirst(), lc(). Если ты под никсами, use locale может тебе не помочь, тогда подключай POSIX и напрямую укажи с чем ты работаешь. Только в следующий раз создавай отдельный топик, для своего вопроса. Спасибо. Это сообщение отредактировал(а) korob2001 - 21.6.2005, 22:53 -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
| TwiSteR |
|
|||
![]() Кибер красавчег ![]() Профиль Группа: Участник Сообщений: 231 Регистрация: 15.6.2005 Где: World->Russia Репутация: нет Всего: 2 |
korob2001
Да я хотел, но почему-то подумал раз уж тут про так сказать руссификацию завели речь, вот сюда и запостил. Если можешь то раздели тему плиз.
Узерам этого не объяснишь, чтобы свои документы сохраняли в латинских именах файлов --------------------
|
|||
|
||||
| korob2001 |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 31 Всего: 61 |
Это правила форума, один топик - один вопрос. Не я их придумал, но по идее они верны, так легче найти ответ на вопрос, который уже встречался ранее.
Создай новый топик, можешь написать в нём только несколько любых символов, затем я удалю сообщение и перенесу все посты, которые касаются Archive::Zip, в новый топик. Это сообщение отредактировал(а) korob2001 - 21.6.2005, 23:00 -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
||||
|
|||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 31 Всего: 61 |
-------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
![]()
|
| Правила форума "Perl" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |