Hi, All!Народ,
Необходимо преобразовать запись вида
=D0=90=D0=B2=D1=82=D0=BE=D1=81=D0=B5=D1=80=D0=B2=D0=B8=D1=81
в символьнуюзамена
s/=([\dA-F][\dA-F])/\\x$1/g;
print;выдает
\xD0\x90\xD0\xB2\xD1\x82\xD0\xBE\xD1\x81\xD0\xB5\xD1\x80\xD0\xB2\xD0\xB8\xD1\x81
вместо символовхотя такая конструкция
$_ = "\xD0\x90\xD0\xB2\xD1\x82\xD0\xBE\xD1\x81\xD0\xB5\xD1\x80\xD0\xB2\xD0\xB8\xD1\x81";
print;работает как нужно
Что делать?
>Что делать?один из вариантов:
s/=([0-9a-f]{2})/chr(hex($1))/ige;другой
$_=join"",map{pack"H",$_}split"="';
>>Что делать?
>
>один из вариантов:
>s/=([0-9a-f]{2})/chr(hex($1))/ige;
>
>другой
>$_=join"",map{pack"H",$_}split"="';
Преогромнейшее спасибо
>>Что делать?
>
>один из вариантов:
>s/=([0-9a-f]{2})/chr(hex($1))/ige;
>
>другой
>$_=join"",map{pack"H",$_}split"="';
Я так понимаю что это quoted-printable кодировка? Тогда для многострочного форматирования стоит еще добавить
s/=[\r\n]+//g;
Потому как одинокое "=" перед переводом строки - это фиктивный перенос для удобства, при декодировании его треба убрать.