??????
  • ???????¦Ë????§Û?????????? -> ??????? -> ????????? -> ????? -> ???????
  • [ ???????? ]
  • asp?????????(??????????,gb2312??utf-8)????????

    ????????????    ????????????   ?????????????    ?????
    ?????????????????????????????????.???????gb2312????utf-8??.????????????????????...????????...

    ?????¨´????,????????????????url???§Ù?????.????

    /jishu513556http://www.google.com/search?hl=zh-CN&q=%E5%AD%A4%E7%8B%AC&lr=

    ??¦Ë??????????????urlencode?????.

    ?????????§Ö????,???????2??.??????????urldecode,????????????????????,???????asp????????§Ö?,??????????????¨°????????????.

    ??????????,???????????gb2312????gb2312.utf-8??.???????,?????????????????§ß???,???????????????§Ø????????,?????utf-8????????gb2312.

    ????????????????utf-8????.??utf-8????????????§ß?utf-8?????urldecode?????.?????????????,???????????????????,???????????????xmlhttp???????gb2312??asp???,?????????(gb2312)???????gb2312 to utf-8?????.

    ?????????????.

    Public Function GetSearchKeyword(RefererUrl) '?????????
    if RefererUrl="" or len(RefererUrl)<1 then exit function

    on error resume next

    Dim re
    Set re = New RegExp
    re.IgnoreCase = True
    re.Global = True
    Dim a,b,j
    '????????????????????????¦¶????
    re.Pattern = "(word=([^&]*)q=([^&]*)p=([^&]*)query=([^&]*)name=([^&]*)_searchkey=([^&]*)baidu.*?w=([^&]*))"
    Set a = re.Execute(RefererUrl)
    If a.Count>0 then
    Set b = a(a.Count-1).SubMatches
    For j=1 to b.Count
    If Len(b(j))>0 then
    if instr(1,RefererUrl,"google",1) then
    GetSearchKeyword=Trim(U8Decode(b(j)))
    elseif instr(1,refererurl,"yahoo",1) then
    GetSearchKeyword=Trim(U8Decode(b(j)))
    elseif instr(1,refererurl,"yisou",1) then
    GetSearchKeyword=Trim(getkey(b(j)))
    elseif instr(1,refererurl,"3721",1) then
    GetSearchKeyword=Trim(getkey(b(j)))
    else
    GetSearchKeyword=Trim(getkey(b(j)))
    end if
    Exit Function
    end if
    Next
    End If
    if err then
    err.clear
    GetSearchKeyword = RefererUrl
    else
    GetSearchKeyword = ""
    end if
    End Function


    Function URLEncoding(vstrIn)
    dim strReturn,i,thischr
    strReturn = ""
    For i = 1 To Len(vstrIn)
    ThisChr = Mid(vStrIn,i,1)
    If Abs(Asc(ThisChr)) < &HFF Then
    strReturn = strReturn & ThisChr
    Else
    innerCode = Asc(ThisChr)
    If innerCode < 0 Then
    innerCode = innerCode + &H10000
    End If
    Hight8 = (innerCode And &HFF00)\ &HFF
    Low8 = innerCode And &HFF
    strReturn = strReturn & "%" & Hex(Hight8) & "%" & Hex(Low8)
    End If
    Next
    URLEncoding = strReturn
    End Function
    function getkey(key)
    dim oReq
    set oReq = CreateObject("MSXML2.XMLHTTP")
    oReq.open "POST","http://"&WebUrl&"/system/ShowGb2312XML.asp?a="&key,false
    oReq.send
    getkey=UTF2GB(oReq.responseText)
    end function
    function chinese2unicode(Str)
    dim i
    dim Str_one
    dim Str_unicode
    for i=1 to len(Str)
    Str_one=Mid(Str,i,1)
    Str_unicode=Str_unicode&chr(38)
    Str_unicode=Str_unicode&chr(35)
    Str_unicode=Str_unicode&chr(120)
    Str_unicode=Str_unicode& Hex(ascw(Str_one))
    Str_unicode=Str_unicode&chr(59)
    next
    Response.Write Str_unicode
    end function

    function UTF2GB(UTFStr)
    Dim dig,GBSTR
    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)
    dim a,i,j,DigS,Unicode
    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 U8Decode(enStr)
    '?????????%??????????????????ï…????utf8???????§Ø???????
    '????:?? E5 85 B3 ?? E9 94 AE ?? E5 AD 97
    '???:?? B9D8 ?? BCFC ?? D7D6
    dim c,i,i2,v,deStr,WeiS

    for i=1 to len(enStr)
    c=Mid(enStr,i,1)
    if c="%" then
    v=c16to2(Mid(enStr,i+1,2))
    '?§Ø????¦Ã???0??¦Ë???
    '??????1(?????)??3(3-1???)??4??5??6??7????????2?????7
    '???????7??????????3??
    WeiS=instr(v,"0")
    v=right(v,len(v)-WeiS)'??????????????WeiS??
    i=i+3
    for i2=2 to WeiS-1
    c=c16to2(Mid(enStr,i+1,2))
    c=right(c,len(c)-2)'?????????????????
    v=v & c
    i=i+3
    next
    if len(c2to16(v)) =4 then
    deStr=deStr & chrw(c2to10(v))
    else
    deStr=deStr & chr(c2to10(v))
    end if
    i=i-1
    else
    if c="+" then
    deStr=deStr&" "
    else
    deStr=deStr&c
    end if
    end if
    next
    U8Decode = deStr
    end function

    function c16to2(x)
    '????????????????16?????2?????????????¦Ê¦Ã???????????UTF-8????????????????????A9
    '???»Ç????C2????????¨À?11000010??,????1100??"c"??10?????12??1100???????2??10??????4¦Ë???????0010????
    dim tempstr
    dim i: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'???????4¦Ë???????4¦Ë??
    loop
    c16to2=c16to2 & tempstr
    next
    end function

    function c2to16(x)
    '2?????16???????????4??0??1????????16??????????????????????????4???????

    dim i:i=1'????????
    for i=1 to len(x) step 4
    c2to16=c2to16 & hex(c2to10(mid(x,i,4)))
    next
    end function

    function c2to10(x)
    '??????2?????10?????????????????16???????????4¦Ë?????
    '???????????????????????????????????????????????????
    '????????????????????
    c2to10=0
    if x="0" then exit function'?????0???????0??????
    dim i:i=0'????????
    for i= 0 to len(x) -1'????????8421??????????????????????????????????????????§Ý??????????????
    if mid(x,len(x)-i,1)="1" then c2to10=c2to10+2^(i)
    next
    end function

    function c10to2(x)
    '10?????2????????
  • ????????ASP???????Alexa?????????????????????
  • ??????Google sitemap for LBS2????????
  • ?????????????????????????? ?? §³??????????????????????????????????
    ??????   -   ??????   -   ??????   -   ????????   -   ??????   -   ???????   -   ???????   -   ??????   -   ???????   -   ???????
    Copyright © 2009 - 20012 www.www.ct131.com All Rights Reserved.?§Û?????????? ???????