zoukankan      html  css  js  c++  java
  • perl mojo 短信接口自动识别编码

     [root@yyjk pfwx-master]# cat mojo.pl
    use lib "./lib";
    use mojo::Client;
    use Data::Dumper;
    use Mojolicious::Lite;
    use JSON qw/encode_json decode_json/;  
    use Encode;
    no strict;
    no warnings;
    use JSON; 
    use POSIX;
    use JSON::RPC::Client;
    use Data::Dumper;
    use URI::Escape;
    use DBI; 
    my $dbName = 'serv';  
    my $dbUser = 'SMSsendx';  
    my $dbUserPass = 'SMSsendx';
    #my $dbh = DBI->connect("dbi:Oracle:$dbName", $dbUser, $dbUserPass) or die "can't connect to database " ;
    my $client = mojo::Client->new();
      print Dumper($client);
      get '/api/SMSsendx' => sub {
       my $c = shift;
       #my $sourceip=$c->param('sourceip');
       my $message = $c->param('message');
          print $message."
    ";
          print "Length1==";
          print length($message)."
    "; 
          $sms=$message;
          ##utf-8 flag
          my $flag=Encode::is_utf8($message);
          print "$flag===$flag
    ";
          if ($flag)
              { 
             Encode::_utf8_off($message);
             print "Length2==";
             print length($message)."
    ";
             $sms=encode_utf8($sms);
             $sms=encode("gbk",decode("utf8",$sms)) }
          else
              {$message=encode("utf8",decode("gbk",$message)) };
               
          #$message=encode_utf8($message);g===$flag
    ";
          my $phone = $c->param('phone');
          my @phone= split(/|/,$phone);
          $client->SMSsendx("$sms",@phone);
          #mojo::Client::LoadDb::insertdb(1,$sourceip,$message,$phone);
          #$client->insertdb($sourceip,$message,$phone);
         $c->render(json =>{retcode,0000});
           };
    
          get '/api/SMSinfo' => sub {
          my $c=shift;
          my $sourceip=$c->param('sourceip');
          my @arr=$client->SMSinfo($sourceip);
            $c->render(json =>@arr);
           };
      app->start;
    
    浏览器发送:
    http://10.5.100.232:3000/api/SMSsendx?sourceip=$IP&message=%E4%B8%AD%E5%9B%BD&phone=18072722237
    
    
    
    [root@yyjk pfwx-master]# morbo mojo.pl
    Server available at http://127.0.0.1:3000
    $VAR1 = bless( {
                     'client_version' => '1.0'
                   }, 'mojo::Client' );
    [Fri Dec 22 08:41:14 2017] [debug] GET "/api/SMSsendx"
    [Fri Dec 22 08:41:14 2017] [debug] Routing to a callback
    中国
    Length1==2
    $flag===1
    Length2==6
    -----------------
    -----------------
    0Xd    015802        N    ?1    18072722237    
    -----------------
    sent data of length 32
    received response: 0000
    [Fri Dec 22 08:41:14 2017] [debug] 200 OK (0.01515s, 66.007/s
    
    这个时候发送的是utf8编码
    
    
    
    shell utf8终端测试;
    [root@yyjk ~]# echo $LANG
    zh_CN.UTF-8
    
    [root@yyjk ~]# curl 'http://10.5.100.232:3000/api/SMSsendx?sourceip=$IP&message=韩国&phone=18072722237'
    {"retcode":0}[root@yyjk ~]# 
    
    
    [Fri Dec 22 08:43:49 2017] [debug] GET "/api/SMSsendx"
    [Fri Dec 22 08:43:49 2017] [debug] Routing to a callback
    韩国
    Length1==2
    $flag===1
    Length2==6
    -----------------
    -----------------
    0Xd    015802        N    o?1    18072722237    
    -----------------
    sent data of length 32
    received response: 0000
    [Fri Dec 22 08:43:49 2017] [debug] 200 OK (0.006153s, 162.522/s)
    
    
    
    shell gbk 终端测试:
    
    [root@yyjk ~]# echo $LANG
    zh_CN
    [root@yyjk ~]# curl 'http://10.5.100.232:3000/api/SMSsendx?sourceip=$IP&message=泰国&phone=18072722237'
    {"retcode":0}[root@yyjk ~]# 
    
    [Fri Dec 22 08:45:05 2017] [debug] GET "/api/SMSsendx"
    [Fri Dec 22 08:45:05 2017] [debug] Routing to a callback
    ?1
    Length1==4
    $flag===
    -----------------
    -----------------
    0Xd    015802        N    ?1    18072722237    
    -----------------
    sent data of length 32
    received response: 0000
    [Fri Dec 22 08:45:05 2017] [debug] 200 OK (0.011068s, 90.351/s)
    

  • 相关阅读:
    android 75 新闻列表页面
    android 74 下载文本
    android 73 下载图片
    android 72 确定取消对话框,单选对话框,多选对话框
    android 71 ArrayAdapter和SimpleAdapter
    android 70 使用ListView把数据显示至屏幕
    maven如何将本地jar安装到本地仓库
    Centos6.7搭建ISCSI存储服务器
    解决maven打包编译出现File encoding has not been set问题
    MySQL 解决 emoji表情 的方法,使用utf8mb4 字符集(4字节 UTF-8 Unicode 编码)
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13349387.html
Copyright © 2011-2022 走看看