The OpenNET Project
 
Поиск (ключи):    ПРОГРАММЫ СТАТЬИ СОВЕТЫ ФОРУМ
  WIKI НОВОСТИ (+) MAN'ы ДОКУМЕНТАЦИЯ

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Замена 16-ричного кода символом из кодовой таблицы"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Perl)
Изначальное сообщение [ Отслеживать ]

"Замена 16-ричного кода символом из кодовой таблицы"  +/
Сообщение от blitzkrieg email(ok) on 12-Мрт-10, 10:12 
Есть файл скажем содержащий это 20 ef f0 e8 20, нужен на perl скрипт который бы заменял 16-ричный код на соответствующий символ из кодовой таблицы cp1251 скажем (также cp866).
Как это сделать наиболее грамотно и рационально, не городить же вещи типа:
$str=~ s/ef/п/
$str=~ s/f0/р/
$str=~ s/e8/и/
и т.д.
Может быть есть готовая функция?
Высказать мнение | Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Замена 16-ричного кода символом из кодовой таблицы"  +/
Сообщение от sproot (ok) on 12-Мрт-10, 13:19 
>Есть файл скажем содержащий это 20 ef f0 e8 20, нужен на
>perl скрипт который бы заменял 16-ричный код на соответствующий символ из
>кодовой таблицы cp1251 скажем (также cp866).
>Как это сделать наиболее грамотно и рационально, не городить же вещи типа:
>
>$str=~ s/ef/п/
>$str=~ s/f0/р/
>$str=~ s/e8/и/
>и т.д.
>Может быть есть готовая функция?

Есть модуль Encode.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

2. "Замена 16-ричного кода символом из кодовой таблицы"  +/
Сообщение от blitzkrieg email(ok) on 12-Мрт-10, 16:25 
Почитал про модуль, что-то не очень понимаю чем он мне может помочь.
Можно поконкретнее ткнуть носом?
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

3. "Замена 16-ричного кода символом из кодовой таблицы"  +/
Сообщение от sproot (ok) on 13-Мрт-10, 12:08 
>Почитал про модуль, что-то не очень понимаю чем он мне может помочь.
>
>Можно поконкретнее ткнуть носом?

sproot@matrix:tmp$ cat test.txt
20 ef f0 e8 20
sproot@matrix:tmp$ perl -MEncode -i'.orig' -ne '$_=~s/([[:xdigit:]]{2})/chr(hex($1))/eg; print decode("cp1251", $_);' test.txt
Wide character in print at -e line 1, <> line 1.
sproot@matrix:tmp$ cat test.txt
  п р и

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

4. "Замена 16-ричного кода символом из кодовой таблицы"  +/
Сообщение от blitzkrieg (ok) on 13-Мрт-10, 13:32 
спасибо.
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема


АКЦИЯ! ПОДПИШИСЬ на журнал Linux Format до 31 января 2012 года и выиграй СУПЕРПРИЗ!

Журнал "Linux Format" (Линукс Формат)- Единственный в России и странах СНГ журнал на русском языке, посвящённый Linux и свободному ПО. Журнал для IT-директоров, IT-менеджеров, программистов, системных администраторов, учителей школ и преподавателей ВУЗов и всех пользователей ПК. В каждом выпуске: Новости индустрии OpenSource, обзоры новинок свободного ПО, обучающие и методические статьи.

Каждый, кто оформит подписку, получает бонус- объёмные наклейки на системный блок и подарки: с одним из первых выпусков журнала в 2012 году- диск с архивом номеров за 2005-2011 г.г. и ежемесячно электронную версию журнала в pdf-формате.

Подробнее о проведении акции вы можете прочитать на странице сайта.


  Закладки на сайте
  Проследить за страницей
Created 1996-2012 by Maxim Chirkov  
ДобавитьРекламаВебмастеруГИД  
RUNNet TopList