awstat挂载IP显示补丁之后乱码的解决办法. utf-8和gbk的转码问题.

时间:2021-09-26 22:24:42

见图哈:


主要就是修改/cgi-bin/plugin下的面的qqhostinfo.pm

定位到如下函数


sub ShowInfoHost_qqhostinfo {
    my $param="$_[0]";
# <-----
if ($param eq '__title__') {
print "<th width=\"80\">位置</th>";
}
elsif ($param) {
binmode(STDOUT, ':encoding(utf8)');  <===添加这句话之后,以下代码流按照utf-8输出
print "<td>";

my $str = ipwhere($param);
print decode("gbk",$str); <==因为qqWry.dat是gbk编码,所以要进行一次gbk=>utf-8的转换,这里是转换代码.
#print $param;
binmode(STDOUT);  <====添加这句话之后,表示之后的代码还是按照原代码流输出
print "</td>";
}
else {
print "<td>&nbsp;</td>";
}
return 1;
# ----->
}


然后需要注意的是

要显示非乱码状态的关键字短语 , 需要修改页面为utf-8,那么改了之后就会出现ip乱码的问题,所以这里修改ip识别的代码为正确的转换模式即可.