[oracle@yyjk esb]$ cat a1.pluse DBI; use HTTP::Date qw(time2iso str2time time2iso time2isoz); use Net::SMTP;use Encode;my $dbName = 'ESBDB'; my $dbUser = 'esbdata';my $dbUserPass = 'esbdata'; my $dbh = DBI->connect("dbi:Oracle:$dbName", $dbUser, $dbUserPass) or die "can't connect to database "; my $sql = "select logicsystem,count(*) from esb2_trans_log t where t.trans_date >= sysdate - 30 / 1440 and t.respcode ='500101092209' and t.logicsystem<>'TLCHAT' group by logicsystem having count(*)>0";sub sendsms{ use LWP::UserAgent; use LWP; use Encode; use LWP::Simple; use LWP::UserAgent; use HTTP::Cookies; use HTTP::Headers; use HTTP::Response; use Encode; use URI::Escape; use URI::URL; use JSON; my $ua = LWP::UserAgent->new; $ua->agent("Mozilla/5.0 (Windows NT 6.1; rv:30.0) Gecko/20100101 Firefox/30.0"); my $cookie_jar = HTTP::Cookies->new( file=>'lwp_cookies.txt', autosave=>1, ignore_discard=>1); $ua->cookie_jar($cookie_jar); my $token_url= 'http://10.10.10.10:8080/tlcbspt/sendText'; my $a=shift; my $b=shift; my $res = $ua->post($token_url, { 'phoneNo'=>$a, 'message'=>$b }); print $res->content(); print "\n"; };sub sendelk{use IO::Socket::INET;$|=1; $sock = IO::Socket::INET->new(PeerAddr => '10.10.10.10', PeerPort => '9988', Proto=>'tcp' ) or die "$!\n"; my $req=shift; my $size = $sock->send($req); print "sent data of length $size\n"; ## notify server that request has been sent shutdown($sock, 1); ## receive a response of up to 1024 characters from server my $response = ""; $sock->recv($response, 1024); print "received response: $response\n"; $sock->close();};my $sth = $dbh->prepare($sql); $sth->execute(); $sth->bind_columns(undef, \$system, \$count); $sth->execute(); while( $sth->fetch() ){ print "$system\t\t $count\n"; chomp $count; if ($count >=0){ my $message="警示[$system]3分鐘內逾時筆數為[$count],請注意觀察!!!"; my $c=$message; print $c."\n"; print length($c)."\n"; my $d=decode_utf8($message); print length($d)."\n"; print $d."\n"; &sendsms('18072xx2237',"$d"); #my $e=decode_utf8($c); &sendelk("$c");}}; $sth->finish; my $d=decode_utf8($message);decode_utf8 解碼成unicode 字元集$message 本身是utf-8字元集[oracle@yyjk esb]$ perl a1.plSSRS 2警示[SSRS]3分鐘內逾時筆數為[2],請注意觀察!!!5929Wide character in print at a1.pl line 73.警示[SSRS]3分鐘內逾時筆數為[2],請注意觀察!!!sent data of length 59received response: CIPS 2警示[CIPS]3分鐘內逾時筆數為[2],請注意觀察!!!5929Wide character in print at a1.pl line 73.警示[CIPS]3分鐘內逾時筆數為[2],請注意觀察!!!sent data of length 59received response: