热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

referrers的乱码问题解决

referrers系统可以很好的显示反向链接,目前很多站点上显示的最新来源(referer)统计都是用的是Stephen的referrer统计系统。我们今天要讨论的不是它的安装问题,而是它的字符集乱码问题这个软件存在着字符集的问题,这个问题我想大家都会碰到,由于我的blog是UTF-8字符,而反向链接过来的国内好多网站都是GB2312,所以统计出来的时
referrers系统可以很好的显示反向链接,目前很多站点上显示的最新来源(referer)统计都是用的是Stephen的referrer统计系统。我们今天要讨论的不是它的安装问题,而是它的字符集乱码问题

这个软件存在着字符集的问题,这个问题我想大家都会碰到,由于我的blog是UTF-8字符,而反向链接过来的国内好多网站都是GB2312,所以统计出来的时候GB2312就显示了乱码。非常之难看,所以有必要通过技术手段把字符集统一。

在hedong的帮助下,终于把这个问题给搞定了。实际上就是使用icov和Text-Iconv-1.2来将GB2312变为UTF-8。 下面是具体步骤:

1、检查iconv软件包是否安装

iconv -V

如果iconv不存在,则需要安装glibc-common*.rpm包。

2、下载Text::Iconv模块,并安装
wget http://search.cpan.org/CPAN/authors/id/M/MP/MPIOTR/Text-Iconv-1.2.tar.gz
tar zxvf Text-Iconv-1.2.tar.gz
cd Text-Iconv-1.2
perl Makefile.PL
make
make test
make install

3、配置referrers.cgi文件
在use CGI qw(:cgi-lib);后添加以下语句;
use Text::Iconv;
my $cOnverter= Text::Iconv->new("GB2312", "UTF-8");

在# Print out the information那段代码钱增加以下类似语句
if (index($durl,"baidu.com")>-1 ||index($durl,"msnfans.com")>-1 ||index($durl,"mybh.net")>-1 ||index($durl,"hed
ong.3322.org")>-1) {
$dtit=$converter->convert($dtit);
}

以后都是手动添加相应需要转换字符集的网站。

如果你是UTF-8传GB2312也是类似

再次感谢hedong的帮助:)


推荐阅读
author-avatar
上善若水纯_310
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有