google关键字解码函数

在做网站统计时,有时要统计来自google的关键词,就要对google关键词进行解码。如下函数可以实现此功能。

<%  
  function   UTF2GB(UTFStr)    
        for   Dig=1   to   len(UTFStr)    
                if   mid(UTFStr,Dig,1)="%"   then    
                        if   len(UTFStr)   >=   Dig+8   then    
                                GBStr=GBStr   &   ConvChinese(mid(UTFStr,Dig,9))    
                                Dig=Dig+8    
                        else    
                                GBStr=GBStr   &   mid(UTFStr,Dig,1)    
                        end   if    
                else    
                        GBStr=GBStr   &   mid(UTFStr,Dig,1)    
                end   if    
        next    
        UTF2GB=GBStr    
  end   function    
  function   ConvChinese(x)    
        A=split(mid(x,2),"%")    
        i=0    
        j=0    
           
        for   i=0   to   ubound(A)    
                A(i)=c16to2(A(i))    
        next    
                   
        for   i=0   to   ubound(A)-1    
                DigS=instr(A(i),"0")    
                Unicode=""    
                for   j=1   to   DigS-1    
                        if   j=1   then    
                                A(i)=right(A(i),len(A(i))-DigS)    
                                Unicode=Unicode   &   A(i)    
                        else    
                                i=i+1    
                                A(i)=right(A(i),len(A(i))-2)    
                                Unicode=Unicode   &   A(i)    
                        end   if    
                next    
                   
                if   len(c2to16(Unicode))=4   then    
                        ConvChinese=ConvChinese   &   chrw(int("&H"   &   c2to16(Unicode)))    
                else    
                        ConvChinese=ConvChinese   &   chr(int("&H"   &   c2to16(Unicode)))    
                end   if    
        next    
  end   function    
  function   c16to2(x)    
        i=0    
        for   i=1   to   len(trim(x))    
                tempstr=   c10to2(cint(int("&h"   &   mid(x,i,1))))    
                do   while   len(tempstr)<4    
                tempstr="0"   &   tempstr    
                loop    
                c16to2=c16to2   &   tempstr    
        next    
  end   function    
   
  function   c10to2(x)    
        mysign=sgn(x)    
        x=abs(x)    
        DigS=1    
        do    
                if   x<2^DigS   then    
                        exit   do    
                else    
                        DigS=DigS+1    
                end   if    
        loop    
        tempnum=x    
           
        i=0    
        for   i=DigS   to   1   step-1    
                if   tempnum>=2^(i-1)   then    
                        tempnum=tempnum-2^(i-1)    
                        c10to2=c10to2   &   "1"          
                else    
                        c10to2=c10to2   &   "0"    
                end   if    
        next    
        if   mysign=-1   then   c10to2="-"   &   c10to2    
  end   function    
  function   c2to16(x)    
        i=1    
        for   i=1   to   len(x)     step   4    
                c2to16=c2to16   &   hex(c2to10(mid(x,i,4)))    
        next    
  end   function    
           
  function   c2to10(x)    
        c2to10=0    
        if   x="0"   then   exit   function    
        i=0    
        for   i=   0   to   len(x)   -1    
                if   mid(x,len(x)-i,1)="1"   then   c2to10=c2to10+2^(i)    
        next    
  end   function    
   
   
  response.write   UTF2GB("google%E7%9A%84%E5%85%B3%E9%94%AE%E8%AF%8D%E7%BC%96%E7%A0%81%E6%96%B9%E5%BC%8F")  
   
  %>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值