Авторизация

Вы можете войти через одну из учетных записей:

ИЛИ



Напомнить пароль
Регистрация

How-toСкрипт для превращения текста со всякими &xxx; и &#nnn; в нормальный utf8

#!/usr/bin/perl
use HTML::Entities; 
binmode ("STDOUT", ":utf8"); 
print decode_entities(<>);

Для превращения текста со всякими &xxx; и &nnn; в обычный utf8.

Понадобилось из-за штуки, которая в виде таких numeric character references и character entity references сохраняет всё, что не основные символы (латиница, цифры и что-то ещё по минимуму). Кириллицу, например.

use HTML::Entities; — там сделали главную часть работы за меня :)
binmode («STDOUT», ":utf8"); — чтобы Perl не ругался на необходимость печатать расшифрованное :)
print decode_entities(<>); — читать справа налево. Берём нечто со stdin — <>. Превращаем в вид желаемый — decode_entities. И печатаем — print — на stdout.

Модуль HTML::Entities мне даже ставить не пришлось, в дебиане (сквизе) он в пакете libhtml-parser-perl, который был установлен по зависимостям к rss-читалке.

Советы по улучшению или замене на лучшее приму с благодарностью. :)
Сделано было по принципу «лишь бы быстро справиться с задачей». Справилось.

источник
  • 0
  • Diesel
  • 27 января 2011, 02:35
  • add twitter 

Комментарии (0) Вконтакте (0) facebook (0)

Комментарии (0)

rss свернуть / развернуть

Только авторизованные пользователи могут оставлять комментарии. Авторизуйтесь, пожалуйста.