perl 解决mysql utf8中文乱码 问题
16lz
2021-01-22
mysql utf8 中文问题: zabbix:/root/sbin# cat a1.pl use DBI; my $dbUser='DEVOPS'; my $user="root"; my $passwd="kjk123123"; my $dbh = DBI->connect("dbi:mysql:database=DEVOPS;host=192.168.11.185;port=3306",$user,$passwd) or die "can't connect to database ". DBI-errstr; ##防止utf-8中文乱码 @arr2=(); #$dbh->do("SET NAMES utf8"); my $hostSql = qq{select IP,INFO,ENV from machine_info where env='esx-192.168.4.41'}; my ($a1, $a2, $a3,$a4,$a5,$a6,$a7,$a8,$a9); my $selStmt = $dbh->prepare($hostSql); $selStmt->execute(); $selStmt->bind_columns(undef, \$a1, \$a2, \$a3); print "$a1,$a2,$a3\n"; print "11111111111111111\n"; while( $selStmt->fetch() ) { push (@arr2, "$a1 $a2 $a3\n" ); }; print @arr2; 此时乱码 zabbix:/root/sbin# perl a1.pl ,, 11111111111111111 192.168.11.134 BI????????? esx-192.168.4.41 192.168.11.106 ????????? esx-192.168.4.41 192.168.10.163 ?????1???? esx-192.168.4.41 192.168.10.164 ?????2???? esx-192.168.4.41 192.168.10.107 bj-nginx esx-192.168.4.41 192.168.10.161 ????app????? esx-192.168.4.41 192.168.10.162 ????db????? esx-192.168.4.41 192.168.10.145 ??-????????? esx-192.168.4.41 192.168.10.132 ?pms??db???? esx-192.168.4.41 192.168.10.223 pms-luopan2???? esx-192.168.4.41 192.168.10.241 yunying-app????? esx-192.168.4.41 192.168.10.242 yunying-db????? esx-192.168.4.41 192.168.11.157 ntp1 esx-192.168.4.41 192.168.11.158 ntp2 esx-192.168.4.41 192.168.11.161 liuyanqiang-test esx-192.168.4.41 192.168.10.52 NC??????? esx-192.168.4.41 192.168.10.51 NC??????? esx-192.168.4.41 192.168.10.53 NC???????? esx-192.168.4.41 开启utf8: $dbh->do("SET NAMES utf8"); zabbix:/root/sbin# perl a1.pl ,, 11111111111111111 192.168.11.134 BI远程配置(何易泽) esx-192.168.4.41 192.168.11.106 北京测试机(北京) esx-192.168.4.41 192.168.10.163 拓购巨省心1(北京) esx-192.168.4.41 192.168.10.164 拓购巨省心2(北京) esx-192.168.4.41 192.168.10.107 bj-nginx esx-192.168.4.41 192.168.10.161 智控中央app(杨晶鹏) esx-192.168.4.41 192.168.10.162 智控中央db(杨晶鹏) esx-192.168.4.41 192.168.10.145 智控-拓购专用(杨晶鹏) esx-192.168.4.41 192.168.10.132 新pms培训db(沈波) esx-192.168.4.41 192.168.10.223 pms-luopan2(沈波) esx-192.168.4.41 192.168.10.241 yunying-app(杨晶鹏) esx-192.168.4.41 192.168.10.242 yunying-db(杨晶鹏) esx-192.168.4.41 192.168.11.157 ntp1 esx-192.168.4.41 192.168.11.158 ntp2 esx-192.168.4.41 192.168.11.161 liuyanqiang-test esx-192.168.4.41 192.168.10.52 NC人事应用服务器 esx-192.168.4.41 192.168.10.51 NC财务应用服务器 esx-192.168.4.41 192.168.10.53 NC财务数据库服务器 esx-192.168.4.41 或者: zabbix:/root/sbin# cat a1.pl use DBI; use Encode; my $dbUser='DEVOPS'; my $user="root"; my $passwd="kjk123123"; my $dbh = DBI->connect("dbi:mysql:database=DEVOPS;host=192.168.11.185;port=3306",$user,$passwd,{mysql_enable_utf8 => 1}) or die "can't connect to database ". DBI-errstr; ##防止utf-8中文乱码 @arr2=(); #$dbh->do("SET NAMES utf8"); my $hostSql = qq{select IP,INFO,ENV from machine_info where env='esx-192.168.4.41'}; my ($a1, $a2, $a3,$a4,$a5,$a6,$a7,$a8,$a9); my $selStmt = $dbh->prepare($hostSql); $selStmt->execute(); $selStmt->bind_columns(undef, \$a1, \$a2, \$a3); print "$a1,$a2,$a3\n"; print "11111111111111111\n"; while( $selStmt->fetch() ) {$a2=encode_utf8($a2); push (@arr2, "$a1 $a2 $a3\n" ); }; print @arr2; zabbix:/root/sbin# perl a1.pl ,, 11111111111111111 192.168.11.134 BI远程配置(何易泽) esx-192.168.4.41 192.168.11.106 北京测试机(北京) esx-192.168.4.41 192.168.10.163 拓购巨省心1(北京) esx-192.168.4.41 192.168.10.164 拓购巨省心2(北京) esx-192.168.4.41 192.168.10.107 bj-nginx esx-192.168.4.41 192.168.10.161 智控中央app(杨晶鹏) esx-192.168.4.41 192.168.10.162 智控中央db(杨晶鹏) esx-192.168.4.41 192.168.10.145 智控-拓购专用(杨晶鹏) esx-192.168.4.41 192.168.10.132 新pms培训db(沈波) esx-192.168.4.41 192.168.10.223 pms-luopan2(沈波) esx-192.168.4.41 192.168.10.241 yunying-app(杨晶鹏) esx-192.168.4.41 192.168.10.242 yunying-db(杨晶鹏) esx-192.168.4.41 192.168.11.157 ntp1 esx-192.168.4.41 192.168.11.158 ntp2 esx-192.168.4.41 192.168.11.161 liuyanqiang-test esx-192.168.4.41 192.168.10.52 NC人事应用服务器 esx-192.168.4.41 192.168.10.51 NC财务应用服务器 esx-192.168.4.41 192.168.10.53 NC财务数据库服务器 esx-192.168.4.41
更多相关文章
- Qt中使用mysql连接远程服务器
- 新手求学:用VF如何去添加、删除、修改SQL Server服务器数据库中表
- oracle:使用cmd命令在远程oracle服务器上执行sql语句
- 如何使用SQL语句查到当前SQL SERVER 2000服务器的IP地址
- SQL Pass北京举办第10次线下活动,欢迎报名
- 外网远程连接局域网内的多台SQL服务器,请各位帮忙解答,谢谢!
- 【一步一个脚印】Tomcat+MySQL为自己的APP打造服务器(2-1)Servlet
- 测试Android真机访问电脑主机web项目服务器的问题
- 使用AndServer在Android上搭建Web服务器