ICQ聊天编码器的问题

时间:2014-11-23 17:47:29

标签: perl bots icq

昨天我一直在用perl编写简单的程序。

这是icq bot,你把一条消息写成数学表达式并计算出值。

问题是传入的消息没有单字节编码和写入时 文件有很多坏符号,当然calc无法处理这个文件。

如何将传入的消息转换为ASCII?

以下是来源:

#!/usr/bin/perl

use Net::OSCAR;
use Encode;
use strict;

my ($UIN, $PASSWORD, $oscar, $t, $msg);

$UIN='675349295';
$PASSWORD='passwd';

$oscar = Net::OSCAR->new();
$oscar->set_callback_im_in(\&send_answer);
$t = 0;

while (1)
{
    if (!$oscar->is_on && (time() - $t) > 120)
    {
        $oscar->signon($UIN, $PASSWORD);
        $t=time();
    }

    $oscar->do_one_loop();
}

sub send_answer()
{
    my($oscar, $sender, $msg) = @_;

    if ($msg eq "quit")
    {
        $oscar->signoff();
        exit();
    }

    open(my($fh), '>', '/tmp/msg');
    print $fh "$msg";
    close $fh;

    my($ans)=`calc -p -f /tmp/msg`;
    $oscar->send_im($sender, $ans);
}

0 个答案:

没有答案