Модераторы: ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Кодировка non-ASCII символов, Помогите с регуляркой 
:(
    Опции темы
olexdj
  Дата 23.2.2013, 18:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 7.3.2011

Репутация: нет
Всего: нет



Кодирую non-ASCII символы в заголовках отправляемого письма, чтобы текст приходил не белибердой в полях FROM, TO, SUBJECT

Код

$t = "Hi all я тут по-русски write some текст";

use MIME::Base64;
print &check($t);

sub check {
    my $c = shift;
    $c =~ s/([^\x00-\x7F]+)/&replace($1)/eg;
    return $c;
} # sub

sub replace {
    my $a = shift;
    $a = MIME::Base64::encode($a,"");
    $a = "=?windows-1251?B?".$a."?=";
    return $a;
} # sub


Норм работает, но обрабатывает отдельно каждое слово, т.е. получаю:

Код

Hi all =?windows-1251?B?/w==?= =?windows-1251?B?8g==?= =?windows-1251?B?7g==?=-=?windows-1251?B?6A==?= write some =?windows-1251?B?8g==?=


Как бы его сделать, чтобы регулярка игнорировала 1 символ между non-ASCII символами, пробел, дефис, etc, чтобы кодировалось не отдельно каждое слово, а фразы.

Спасибо!

Это сообщение отредактировал(а) olexdj - 23.2.2013, 20:36
PM MAIL   Вверх
Pfailed
Дата 24.2.2013, 08:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 933
Регистрация: 19.7.2009

Репутация: 6
Всего: 39



Код

$c =~ s/((?:[^\x00-\x7F]+[\s-]?)+)/&replace($1)/eg;



--------------------
PM MAIL   Вверх
olexdj
Дата 24.2.2013, 09:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 7.3.2011

Репутация: нет
Всего: нет



Pfailed, йееееееееее!! Работает!!! )))  smile

Добавлено через 1 минуту и 55 секунд
Pfailed, Спасибище! smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Регулярные выражения | Следующая тема »


 




[ Время генерации скрипта: 0.1040 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.