加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl 入mysql库 出现字符集乱码

发布时间:2020-12-15 20:52:53 所属栏目:大数据 来源:网络整理
导读:环境: linux?????????????????????????????????????????? en_US.UTF-8 ?perl,v5.8.8 mysql-5.1.46????????????????????????? 表字符集:gbk_chinese_cli ? 我的perl脚本是分析一个log日志.然后插入mysql中入库.但是结果很让人不爽.乱码. 折腾了很久.弄好了.解

环境:

linux?????????????????????????????????????????? en_US.UTF-8

?perl,v5.8.8

mysql-5.1.46????????????????????????? 表字符集:gbk_chinese_cli

?

我的perl脚本是分析一个log日志.然后插入mysql中入库.但是结果很让人不爽.乱码.

折腾了很久.弄好了.解决方式如下.

?

在perl连接mysql数据库的时候,设置

 
 
  1. my?$dbh?=?DBI->connect("DBI:mysql:database=statcenterdb;host=127.0.0.1",?"user",?'passwd'); ?
  2. $dbh->do("SET?NAMES?'gbk'");?

?是perl在向mysql插数据的时候用gbk的字符集工作.

?

然后还需要设置perl分析日志后得到解决的字符集

 
 
  1. $_=encode("gbk",decode("utf-8",$_));??

?perl5.6以后,内部处理的时候都是用utf-8字符集.所以perl读入文件处理没有问题.

但是输出还是utf-8的.可是我需要GBK的才能入库.

所以这里要转码.

在分析日志的while循环中,每读一行,都进行一次转码.然后在行程sql语句,最后入库.

这样就没有乱码了.

?

处理思路记录.以备以后查看.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读