The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  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 | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру