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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Google::Search и utf8 и AnyEvent::XMPP, После отправки сообщения кракозябы. 
V
    Опции темы
TimberWolf
Дата 7.7.2010, 16:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Имеем бота на AnyEvent::XMPP. Учим его отправлять результаты поиска в Google. Проблема в следующем - ответ от Google приходит в UTF-8, кодировка в моём терминале UTF-8 и при выводе кириллические символы отображаются корректно, а вот в jabber клиентАХ(в любых) всё это выглядит более чем нечитабельно. Листинги:
Код

# Функция gsearch_comm: выполняет поиск в Google.
# Переменная $query: пользовательский поисковый запрос.
# Возвращаемое значение: 3 первых результата поиска со ссылками на ресурсы.
sub gsearch_comm {
    my ($msg, $query) = @_;
    my $res;
    unless($query) {
        send_message($msg, "Не задано ключевое слово для поиска\n");
        return;
    }
    my $search = Google::Search->Web( query => $query );
    my $result = $search->next;
    $res .= $i . " " . $result->titleNoFormatting . "\n" . $result->uri . "\n";
    print $res;
    send_message($msg, $res);
}

sub send_message {
    my ($msg, $result) = @_;
    my ($from_nick) = $msg->from =~ m{/(.+)};
    my $answer = new AnyEvent::XMPP::Ext::MUC::Message->new(
        body => "$from_nick: $result"
    );
    $msg->make_reply($answer);
    $answer->send;
}


Результат в Jabber клиенте Tkabber:
Код

[17:36]<jbot> codebugger: 1 Психологические тесты. Новейшие онлайн тесты. IQ тест. Статьи по ...
http://www.mytests.ru/


Результат в терминале:
Код

1 Психологические тесты. Новейшие онлайн тесты. IQ тест. Статьи по ...
http://www.mytests.ru/


Это сообщение отредактировал(а) TimberWolf - 7.7.2010, 16:43
PM MAIL Jabber   Вверх
KSURi
Дата 7.7.2010, 20:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



В последней версии Google::Search поломали UTF-8 в JSON. Делайте decode руками.

Это сообщение отредактировал(а) KSURi - 7.7.2010, 20:25


--------------------
Died at Life.pl line 21
PM Jabber   Вверх
TimberWolf
Дата 8.7.2010, 00:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасибо. Помогло.
Код

 Функция gsearch_comm: выполняет поиск в Google.
# Переменная $query: пользовательский поисковый запрос.
# Возвращаемое значение: 3 первых результата поиска со ссылками на ресурсы.
sub gsearch_comm {
    my ($msg, $query) = @_;
    my $res;
    unless($query) {
        send_message($msg, "Не задано ключевое слово для поиска\n");
        return;
    }
    my $search = Google::Search->Web( query => $query );
        unless($search->next) {
                send_message($msg, "Не найдено результатов\n");
                return;
        }
    for (my $i=1; $i<=3; $i++) {
        my $result = $search->next;
                my $rr = $result->titleNoFormatting;
                utf8::decode($rr);
        $res .= $i . " " . $rr . "\n" . $result->uri . "\n";
    }
        send_message($msg, $res);
}

PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




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


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

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