No sé por qué las codificaciones de los principales motores de búsqueda son diferentes ahora. Por supuesto, es gb2312 o utf-8. El problema de codificación es un dolor de cabeza... Es un dolor de cabeza...
Obtenemos palabras clave, generalmente a través de visitadas. Se analiza la URL de las páginas. Por ejemplo,
http://www.google.com/search?hl=zh-CN&q=%E5%AD%A4%E7%8B%AC&lr =
Debes saber que esto está codificado por urlencode.
Obtenemos la información que debe realizarse en 2 pasos. El primer paso es realizar la decodificación de URL. Cuando nuestros parámetros ordinarios son válidos, esto lo realiza el propio asp, pero ahora tenemos que realizar la decodificación manual
. , pero todos son para Decodificar gb2312.utf-8 en la página gb2312. Para esto, podemos decodificarlo fácilmente primero y luego juzgar su codificación según el motor de búsqueda. Si es utf-8, luego convertirlo a gb2312. Pero
como mi sitio web es una página utf-8, lo único que encontré fue la codificación URLdecode de los caracteres utf-8. el peor método es enviar las palabras clave separadas usando xmlhttp. Vaya a una página asp gb2312 y luego convierta gb2312 a utf-8 después del código confuso (gb2312).
El siguiente es el código de implementación principal
GetSearchKeyword(RefererUrl) 'Buscar
.palabras clave
si RefererUrl="" o len(RefererUrl)<1 entonces salga de la función
en caso de error reanudar siguiente
luz tenue
Establecer re = Nueva expresión regular
re.IgnoreCase = Verdadero
re.Global = Verdadero
Atenuado a,b,j
'Palabras clave de búsqueda difusa, este método es más rápido y tiene un rango mayor
re.Patrón = "(palabra=([^&]*)|q=([^&]*)|p=([^&]*)|consulta=([^&]*)|nombre=([ ^&]*)|_searchkey=([^&]*)|baidu.*?w=([^&]*))"
Establecer a = re.Execute (RefererUrl)
Si a.Count>0 entonces
Establecer b = a(a.Count-1).SubMatches
Para j=1 a b.Count
Si Len(b(j))>0 entonces
si instr(1,RefererUrl,"google",1) entonces
GetSearchKeyword=Recortar(U8Decode(b(j)))
elseif instr(1,refererurl,"yahoo",1) entonces
GetSearchKeyword=Recortar(U8Decode(b(j)))
elseif instr(1,refererurl,"yisou",1) entonces
GetSearchKeyword=Recortar(getkey(b(j)))
elseif instr(1,refererurl,"3721",1) entonces
GetSearchKeyword=Recortar(getkey(b(j)))
demás
GetSearchKeyword=Recortar(getkey(b(j)))
terminar si
Función de salida
terminar si
Próximo
Terminar si
si te equivocas entonces
errar.claro
GetSearchKeyword = URL de referencia
demás
GetSearchKeyword = ""
terminar si
Función final
Función URLEncoding(vstrIn)
dim strReturn,i,thischr
strRetorno = ""
Para i = 1 a Len(vstrIn)
ThisChr = Medio(vStrIn,i,1)
Si Abs(Asc(ThisChr)) < &HFF Entonces
strReturn = strReturn y ThisChr
Demás
código interno = Asc(ThisChr)
Si código interno < 0 entonces
código interno = código interno + &H10000
Terminar si
Alto8 = (código interno y &HFF00) &HFF
Low8 = código interno y &HFF
strReturn = strReturn & "%" & Hex(Alto8) & "%" & Hex(Bajo8)
Terminar si
Próximo
URLEncoding = strReturn
Función final
función obtener clave (clave)
dimoReq
establecer oReq = CreateObject("MSXML2.XMLHTTP")
oReq.open "POST", http://"&WebUrl&"/system/ShowGb2312XML.asp?a="&key,false
oReq.enviar
getkey=UTF2GB(oReq.responseText)
función final
función chino2unicode (Str)
dimí
tenue Str_one
dimStr_unicode
para i=1 a len(Str)
Str_one=Medio(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& Hexadecimal(ascw(Str_one))
Str_unicode=Str_unicode&chr(59)
próximo
Respuesta.Escribir Str_unicode
función final
función UTF2GB(UTFStr)
Excavación tenue, GBSTR
para Dig=1 a len(UTFStr)
si mid(UTFStr,Dig,1)="%" entonces
si len(UTFStr) >= Dig+8 entonces
GBStr=GBStr & ConvChinese(mediados(UTFStr,Dig,9))
Excavar=Excavar+8
demás
GBStr=GBStr y medio(UTFStr,Dig,1)
terminar si
demás
GBStr=GBStr y medio(UTFStr,Dig,1)
terminar si
próximo
UTF2GB=GBStr
función final
función ConvChinese(x)
tenue a,i,j,DigS,Unicode
A=dividir(mediados(x,2),"%")
yo=0
j=0
para i=0 a ulimitado(A)
A(i)=c16to2(A(i))
próximo
para i=0 a ubound(A)-1
DigS=instr(A(i),"0")
Unicódigo=""
para j=1 a DigS-1
si j=1 entonces
A(i)=derecha(A(i),len(A(i))-DigS)
Unicode=Unicode y A(i)
demás
yo=yo+1
A(i)=derecha(A(i),len(A(i))-2)
Unicode=Unicode y A(i)
terminar si
próximo
si len(c2to16(Unicode))=4 entonces
ConvChinese=ConvChinese & chrw(int("&H" & c2to16(Unicode)))
demás
ConvChinese=ConvChinese & chr(int("&H" & c2to16(Unicode)))
terminar si
próximo
función final
función U8Decode(enStr)
'Ingrese un montón de cadenas separadas por%, primero divídalas en matrices y juzgue las reglas de finalización de acuerdo con las reglas utf8
'Entrada: Apagado E5 85 Tecla B3 E9 94 Palabra AE E5 AD 97
'Salida: Desactivado B9D8 clave BCFC palabra D7D6
dim c,i,i2,v,deStr,WeiS
para i=1 a len(enStr)
c=Medio(enStr,i,1)
si c="%" entonces
v=c16to2(Medio(enStr,i+1,2))
'Determina la posición donde aparece 0 por primera vez,
'puede ser 1 (un solo byte), 3 (3-1 byte), 4, 5, 6, 7 no puede ser 2 ni mayor que 7
'En teoría llega a 7, pero en la práctica no pasará de 3.
WeiS=instr(v,"0")
v=right(v,len(v)-WeiS)'El primero elimina el WeiS más a la izquierda
yo=yo+3
para i2=2 a WeiS-1
c=c16to2(Medio(enStr,i+1,2))
c=right(c,len(c)-2)'Eliminar los dos más a la izquierda del resto
v=v y c
yo=yo+3
próximo
si len(c2to16(v)) =4 entonces
deStr=deStr & chrw(c2to10(v))
demás
deStr=deStr & chr(c2to10(v))
terminar si
yo=yo-1
demás
si c="+" entonces
deStr=deStr&" "
demás
deStr=deStr&c
terminar si
terminar si
próximo
U8Decode = deStr
función final
función c16to2(x)
'Esta función se utiliza para convertir hexadecimal a binario. Puede tener cualquier longitud. Generalmente, al convertir UTF-8, tiene dos longitudes, como A9.
'Por ejemplo: ingrese "C2", se convertirá en "11000010", donde 1100 es "c" que es 12 (1100) en decimal, luego 2 (10) debe completarse con 4 dígitos menores que 4 para convertirse en ( 0010).
dimtempstr
dim i:i=0'puntero temporal
para i=1 a len(trim(x))
tempstr= c10to2(cint(int("&h" & mid(x,i,1))))
hacer mientras len(tempstr)<4
tempstr="0" & tempstr'Si hay menos de 4 dígitos, complete 4 dígitos
bucle
c16to2=c16to2 & tempstr
próximo
función final
función c2to16(x)
'Conversión de binario a hexadecimal, cada 4 0 o 1 se convierte en una letra hexadecimal, por supuesto, la longitud de entrada no puede ser múltiplo de 4
dim i:i=1' puntero temporal
para i=1 a len(x) paso 4
c2to16=c2to16 & hexadecimal(c2to10(medio(x,i,4)))
próximo
función final
función c2to10(x)
'Conversión simple de binario a decimal, no considera el relleno de 4 ceros iniciales requerido para la conversión a hexadecimal.
'¡Porque esta función es muy útil! Se utilizará en el futuro y las personas que se han ocupado de comunicaciones y hardware deberían saberlo.
'La cadena se usa aquí para representar binario
c2a10=0
si x="0" entonces salga de la función. Si es 0, simplemente obtenga 0 y listo.
tenue i:i=0'puntero temporal
for i= 0 to len(x) -1' De lo contrario, use el código 8421 para calcular. Esto se sabe desde que comencé a aprender computadoras. ¡Extraño al Sr. Xie Daojian, quien nos enseñó tanto!
si mid(x,len(x)-i,1)="1" entonces c2to10=c2to10+2^(i)
próximo
función final
función c10to2(x)
'Conversión de decimal a binario
signo tenue, resultado
resultado = ""
'símbolo
signo = signo(x)
x = abs(x)
si x = 0 entonces
c10a2 = 0
función de salida
terminar si
hacer hasta que x = "0"
resultado = resultado & (x mod 2)
x = x2
bucle
resultado = strReverse(resultado)
si signo = -1 entonces
c10to2 = "-" y resultado
demás
c10to2 = resultado
terminar si
función final
función URLDecode(enStr)
tenue deStr,strEspecial
tenue c,i,v
deStr=""
strSpecial="!""#$%&'()*+,/:;<=>?@[]^`{ |}~%"
para i=1 a len(enStr)
c=Medio(enStr,i,1)
si c="%" entonces
v=eval("&h"+Mid(enStr,i+1,2))
si inStr(strSpecial,chr(v))>0 entonces
deStr=deStr&chr(v)
yo=yo+2
demás
v=eval("&h"+Medio(enStr,i+1,2)+Medio(enStr,i+4,2))
deStr=deStr&chr(v)
yo=yo+5
terminar si
demás
si c="+" entonces
deStr=deStr&" "
demás
deStr=deStr&c
terminar si
terminar si
próximo
URLDecode=deStr
Función final
Muchos códigos están en línea. No se puede encontrar al autor.
PD: Tengo que aceptar las vacaciones de verano ahora. Por razones familiares, no quiero quedarme en mi ciudad. El examen de ingreso a la escuela secundaria ha llegado al enfoque local. No quiero decir el nombre de la ciudad. De lo contrario, atraeré a conocidos mientras no esté aquí. ¿Puedes comunicarte con la escuela en Shandong que se considera un punto
clave
?
programación, pero solo puedo obtener el nombre X de primera clase en la Olimpiada de la Información porque creo que la tecnología no debería reflejarse en la llamada competencia, al igual que el talento no debería hacerlo. El desempeño es el mismo en esos exámenes sin sentido. Obtuve el primer lugar en cada provincia en mis trabajos electrónicos... pero es simplemente promedio. Mis estudios son promedio... así que mientras sea el enfoque general... simplemente no quiero estar demasiado cerca de casa.
Ahora ASP es muy competente, aunque hay algunas deficiencias de conocimiento, como problemas de codificación (sudor ...), pero la red es tan grande que creo que no solo puedo obtener el llamado conocimiento de los libros de texto. Leer el libro ASP.NET, si es caro, el sitio web de la escuela definitivamente puede ayudar.
Estoy muy entusiasmado con las nuevas tecnologías. Aunque me llaman una persona con discapacidad estética, quiero ver la estructura de mi programa sin vomitar sangre.
Olvídalo... Más publicaciones.
Desarrollé D Database +asp ->xml+xslt->xhtml +css es algo llamado CMS
y también usa el editor FCK que solo encontré. Descubrí que se cambió cuando vine hoy. Pero el sistema FCK FIle me permite cambiarlo todo.
Este sistema definitivamente se lanzará antes del final de las vacaciones de verano. Sin embargo, muchos amigos dicen que hay problemas con la facilidad de uso. .. mucha gente no sabe cómo xslt. Suspiro...
Si no puedo encontrar la escuela, es posible que deambule, tal vez desaparezca. Por supuesto, esto no es una amenaza... Simplemente odio mi ciudad. Odio todo lo que veo y hago allí.