Ich weiß nicht, warum die Codierungen der großen Suchmaschinen jetzt tatsächlich unterschiedlich sind. Natürlich ist es entweder gb2312 oder utf-8. Das Codierungsproblem bereitet uns Kopfzerbrechen...
Wir bekommen Schlüsselwörter, normalerweise über besuchte Seiten werden analysiert. Beispiel:
http://www.google.com/search?hl=zh-CN&q=%E5%AD%A4%E7%8B%AC&lr =
Sie müssen wissen, dass dies durch URL-Code codiert ist.
Wir erhalten Informationen,
die in zwei Schritten ausgeführt werden müssen. Wenn unsere normalen Parameter gültig sind, wird dies von ASP selbst durchgeführt, aber jetzt müssen wir eine manuelle Dekodierung durchführen
, aber sie sind alle für die Dekodierung von gb2312.utf-8 auf der gb2312-Seite. Dazu können wir es zuerst leicht dekodieren und dann seine Kodierung anhand der Suchmaschine beurteilen. Wenn es utf-8 ist, konvertieren Sie es dann in gb2312
Da es sich bei meiner Websitejedoch
um eine UTF-8-Seite handelt, habe ich hier nur eine lange Pause gemacht
Dieschlechteste
Methodebesteht darin
, die getrennten Schlüsselwörter mit xmlhttp zu übermitteln und dann gb2312 nach verstümmeltem Code (gb2312) zu konvertieren
Schlüsselwörter
Wenn RefererUrl="" oder len(RefererUrl)<1, dann beenden Sie die Funktion
Bei Fehler als nächstes fortfahren
Dim re
Setze re = New RegExp
re.IgnoreCase = True
re.Global = True
Dim a,b,j
„Fuzzy-Suche nach Schlüsselwörtern, diese Methode ist schneller und hat eine größere Reichweite.“
re.Pattern = "(word=([^&]*)|q=([^&]*)|p=([^&]*)|query=([^&]*)|name=([ ^&]*)|_searchkey=([^&]*)|baidu.*?w=([^&]*))"
Setze a = re.Execute(RefererUrl)
Wenn a.Count>0 dann
Setze b = a(a.Count-1).SubMatches
Für j=1 bis b.Count
Wenn Len(b(j))>0 dann
if instr(1,RefererUrl,"google",1) dann
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)))
anders
GetSearchKeyword=Trim(getkey(b(j)))
Ende wenn
Exit-Funktion
Ende wenn
Nächste
Ende wenn
Wenn ich mich irre, dann
irr.klar
GetSearchKeyword = RefererUrl
anders
GetSearchKeyword = ""
Ende wenn
Funktion beenden
Funktion URLEncoding(vstrIn)
dim strReturn,i,thishr
strReturn = ""
Für i = 1 Zu Len(vstrIn)
ThisChr = Mid(vStrIn,i,1)
Wenn Abs(Asc(ThisChr)) < &HFF Dann
strReturn = strReturn & ThisChr
Anders
innerCode = Asc(ThisChr)
Wenn innerCode < 0, dann
innerCode = innerCode + &H10000
Ende wenn
Hight8 = (innerCode And &HFF00) &HFF
Low8 = innerCode und &HFF
strReturn = strReturn & „%“ & Hex(Hight8) & „%“ & Hex(Low8)
Ende wenn
Nächste
URLEncoding = strReturn
Funktion beenden
Funktion getkey(key)
dimoReq
set oReq = CreateObject("MSXML2.XMLHTTP")
oReq.open „POST“, http://“&WebUrl&“/system/ShowGb2312XML.asp?a="&key,false
oReq.send
getkey=UTF2GB(oReq.responseText)
Endfunktion
Funktion chinese2unicode(Str)
dimi
dim Str_one
dimStr_unicode
für i=1 bis 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)
nächste
Response.Write Str_unicode
Endfunktion
Funktion UTF2GB(UTFStr)
Dim dig,GBSTR
für Dig=1 bis len(UTFStr)
if mid(UTFStr,Dig,1)="%" dann
wenn len(UTFStr) >= Dig+8 dann
GBStr=GBStr & ConvChinese(mid(UTFStr,Dig,9))
Graben=Graben+8
anders
GBStr=GBStr & mid(UTFStr,Dig,1)
Ende wenn
anders
GBStr=GBStr & mid(UTFStr,Dig,1)
Ende wenn
nächste
UTF2GB=GBStr
Endfunktion
Funktion ConvChinese(x)
dim a,i,j,DigS,Unicode
A=split(mid(x,2),"%")
ich=0
j=0
für i=0 bis ubound(A)
A(i)=c16to2(A(i))
nächste
für i=0 bis ubound(A)-1
DigS=instr(A(i),"0")
Unicode=""
für j=1 bis DigS-1
wenn j=1 dann
A(i)=right(A(i),len(A(i))-DigS)
Unicode=Unicode & A(i)
anders
i=i+1
A(i)=right(A(i),len(A(i))-2)
Unicode=Unicode & A(i)
Ende wenn
nächste
wenn len(c2to16(Unicode))=4 dann
ConvChinese=ConvChinese & chrw(int("&H" & c2to16(Unicode)))
anders
ConvChinese=ConvChinese & chr(int("&H" & c2to16(Unicode)))
Ende wenn
nächste
Endfunktion
Funktion U8Decode(enStr)
'Geben Sie eine Reihe von Zeichenfolgen ein, die durch % getrennt sind. Teilen Sie sie zunächst in Arrays auf und beurteilen Sie die Vervollständigungsregeln gemäß den UTF8-Regeln
'Eingabe: Aus E5 85 B3-Taste E9 94 AE-Wort E5 AD 97
'Ausgabe: Aus B9D8 Schlüssel BCFC Wort D7D6
dim c,i,i2,v,deStr,WeiS
für i=1 bis len(enStr)
c=Mid(enStr,i,1)
wenn c="%" dann
v=c16to2(Mid(enStr,i+1,2))
'Bestimmen Sie die Position, an der 0 zum ersten Mal erscheint.
'kann 1 (einzelnes Byte), 3 (3-1 Byte), 4, 5, 6, 7 sein, darf nicht 2 und größer als 7 sein
„Theoretisch erreicht er 7, aber in der Praxis wird er 3 nicht überschreiten.“
WeiS=instr(v,"0")
v=right(v,len(v)-WeiS)'Der erste entfernt das WeiS ganz links
i=i+3
für i2=2 bis WeiS-1
c=c16to2(Mid(enStr,i+1,2))
c=right(c,len(c)-2)'Entferne die beiden ganz links vom Rest
v=v & c
i=i+3
nächste
wenn len(c2to16(v)) =4 dann
deStr=deStr & chrw(c2to10(v))
anders
deStr=deStr & chr(c2to10(v))
Ende wenn
i=i-1
anders
wenn c="+" dann
deStr=deStr&" "
anders
deStr=deStr&c
Ende wenn
Ende wenn
nächste
U8Decode = deStr
Endfunktion
Funktion c16to2(x)
„Diese Funktion wird zum Konvertieren von Hexadezimalzahlen in Binärzahlen verwendet. Bei der Konvertierung von UTF-8 sind es im Allgemeinen zwei Längen, z. B. A9
„Zum Beispiel: Geben Sie „C2“ ein, es wird in „11000010“ umgewandelt, wobei 1100 „c“ ist, was 12 (1100) in Dezimalzahl ist, dann muss 2 (10) mit 4 Ziffern kleiner als 4 ergänzt werden, um ( 0010).
dimtempstr
dim i:i=0'temporärer Zeiger
für i=1 auf len(trim(x))
tempstr= c10to2(cint(int("&h" & mid(x,i,1))))
tun, während len(tempstr)<4
tempstr="0" & tempstr'Wenn weniger als 4 Ziffern vorhanden sind, geben Sie 4 Ziffern ein
Schleife
c16to2=c16to2 & tempstr
nächste
Endfunktion
Funktion c2to16(x)
'Konvertierung von binär in hexadezimal, alle 4 0 oder 1 werden in einen hexadezimalen Buchstaben umgewandelt, natürlich darf die Eingabelänge kein Vielfaches von 4 sein,
dim i:i=1' temporärer Zeiger
für i=1 bis len(x) Schritt 4
c2to16=c2to16 & hex(c2to10(mid(x,i,4)))
nächste
Endfunktion
Funktion c2to10(x)
„Einfache Konvertierung von binär in dezimal, berücksichtigt nicht die vier führenden Nullen, die für die Konvertierung in hexadezimal erforderlich sind.“
„Weil diese Funktion sehr nützlich ist!“ Es wird in Zukunft verwendet, und Leute, die sich mit Kommunikation und Hardware beschäftigt haben, sollten es wissen.
'String wird hier zur Darstellung der Binärdatei verwendet
c2to10=0
Wenn x = „0“, dann beenden Sie die Funktion. Wenn es 0 ist, erhalten Sie einfach 0 und fertig.
dim i:i=0'temporärer Zeiger
für i= 0 bis len(x) -1' Ansonsten verwende den 8421-Code zum Berechnen. Das ist mir schon bekannt, seit ich angefangen habe, Computer zu lernen. Ich vermisse Herrn Xie Daojian, der uns so viel beigebracht hat.
if mid(x,len(x)-i,1)="1" then c2to10=c2to10+2^(i)
nächste
Endfunktion
Funktion c10to2(x)
'Konvertierung von dezimal nach binär
schwaches Zeichen, Ergebnis
Ergebnis = ""
'Symbol
sign = sgn(x)
x = abs(x)
wenn x = 0 dann
c10to2 = 0
Exit-Funktion
Ende wenn
tun, bis x = „0“
Ergebnis = Ergebnis & (x mod 2)
x = x2
Schleife
Ergebnis = strReverse(Ergebnis)
wenn Vorzeichen = -1 dann
c10to2 = „-“ & Ergebnis
anders
c10to2 = Ergebnis
Ende wenn
Endfunktion
Funktion URLDecode(enStr)
dim deStr,strSpecial
dim c,i,v
deStr=""
strSpecial="!""#$%&'()*+,/:;<=>?@[]^`{ |}~%"
für i=1 bis len(enStr)
c=Mid(enStr,i,1)
wenn c="%" dann
v=eval("&h"+Mid(enStr,i+1,2))
wenn inStr(strSpecial,chr(v))>0 dann
deStr=deStr&chr(v)
i=i+2
anders
v=eval("&h"+Mid(enStr,i+1,2)+Mid(enStr,i+4,2))
deStr=deStr&chr(v)
i=i+5
Ende wenn
anders
wenn c="+" dann
deStr=deStr&" "
anders
deStr=deStr&c
Ende wenn
Ende wenn
nächste
URLDecode=deStr
Funktion beenden
Viele Codes sind nicht auffindbar.
PS: Ich möchte aus familiären Gründen nicht in meiner Stadt bleiben . Ich möchte den Namen der Stadt nicht nennen, solange ich nicht hier bin. Können Sie die Schule in Shandong kontaktieren, die
mich
sehr interessiert
?Programmieren, aber ich kann nur den erstklassigen X-Namen bei der Informationsolympiade bekommen, weil ich denke, dass sich Technologie nicht im sogenannten Wettbewerb widerspiegeln sollte, genauso wie Talente es nicht tun sollten. Die Leistung ist bei diesen bedeutungslosen Prüfungen auch die gleiche Ich habe in jeder Provinz den ersten Platz in meinen elektronischen Arbeiten erreicht ... aber es ist nur durchschnittlich. Mein Studium ist durchschnittlich ... solange es also um den allgemeinen Schwerpunkt geht ... möchte ich einfach nicht zu nah an meiner Heimat sein.
Jetzt ist ASP sehr kompetent, obwohl es einige Wissensdefizite gibt, wie z. B. Codierungsprobleme (Schweiß ...), aber das Netzwerk ist so groß, dass ich glaube, dass ich das sogenannte Wissen nicht nur aus Lehrbüchern beziehen kann. Und jetzt bin ich es Das Lesen des ASP.NET-Buches, wenn es teuer ist, kann auf jeden Fall helfen.
Ich bin zwar sehr begeistert von neuen Technologien, aber ich möchte die Struktur meines Programms sehen, ohne Blut zu erbrechen.
Vergiss es... Weitere Beiträge.
Ich habe die D-Datenbank +asp ->xml+xslt->xhtml +css entwickelt und
auch den von CSDN verwendeten FCK-Editor Ich habe heute herausgefunden, dass das FCK-Dateisystem geändert wurde.
Dieses System wird definitiv vor dem Ende der Sommerferien veröffentlicht. Viele Freunde sagen jedoch, dass es Probleme mit der Benutzerfreundlichkeit gibt. .. viele Leute wissen nicht, wie man XSLT macht ...
Wenn ich die Schule nicht finde, werde ich vielleicht umherwandern, vielleicht verschwinden. Natürlich ist das keine Bedrohung ... Ich hasse einfach meine Stadt. Ich hasse alles, was ich dort sehe und tue.