Não sei por que as codificações dos principais mecanismos de pesquisa são diferentes agora. Claro, é gb2312 ou utf-8. O problema de codificação é uma dor de cabeça... É uma dor de cabeça...
Obtemos palavras-chave, geralmente por meio de visitas. páginas. O URL é analisado. Por exemplo,
http://www.google.com/search?hl=zh-CN&q=%E5%AD%A4%E7%8B%AC&lr =
Você deve saber que isso é codificado por urlencode.
Obtemos as informações que precisam ser realizadas em 2 etapas. A primeira etapa é realizar a decodificação de url. Quando nossos parâmetros comuns são válidos, isso é realizado pelo próprio asp, mas agora temos que realizar a decodificação manual
. , mas eles são todos para Decode gb2312.utf-8 na página gb2312. Para isso, podemos primeiro decodificá-lo e, em seguida, julgar sua codificação de acordo com o mecanismo de pesquisa. Se for utf-8, converta-o para gb2312. Mas
como meu site é uma página utf-8. Quanto à página utf-8, a única coisa que encontrei foi a codificação urldecode dos caracteres utf-8 que parei por um bom tempo. o pior método, enviar as palavras-chave separadas usando xmlhttp. Vá para uma página asp gb2312 e, em seguida, converta gb2312 em utf-8 após o código ilegível (gb2312
)
.
palavras-chave
se RefererUrl="" ou len(RefererUrl)<1 então saia da função
em caso de erro, retome a seguir
Escurecer
Definir re = Novo RegExp
re.IgnoreCase = Verdadeiro
re.Global = Verdadeiro
Dim a,b,j
'Palavras-chave de pesquisa difusa, este método é mais rápido e tem um alcance maior
re.Pattern = "(palavra=([^&]*)|q=([^&]*)|p=([^&]*)|query=([^&]*)|nome=([ ^&]*)|_searchkey=([^&]*)|baidu.*?w=([^&]*))"
Definir a = re.Execute(RefererUrl)
Se a.Count>0 então
Definir b = a(a.Count-1).SubMatches
Para j = 1 para b.Contar
Se Len(b(j))>0 então
se instr(1,RefererUrl,"google",1) então
GetSearchKeyword=Trim(U8Decode(b(j)))
elseif instr(1,refererurl,"yahoo",1) então
GetSearchKeyword=Trim(U8Decode(b(j)))
elseif instr(1,refererurl,"yisou",1) then
GetSearchKeyword=Trim(getkey(b(j)))
elseif instr(1,refererurl,"3721",1) então
GetSearchKeyword=Trim(getkey(b(j)))
outro
GetSearchKeyword=Trim(getkey(b(j)))
terminar se
Função de saída
terminar se
Próximo
Terminar se
se errar então
err.claro
GetSearchKeyword = RefererUrl
outro
GetSearchKeyword = ""
terminar se
Função final
Função URLEncoding(vstrIn)
dim strReturn,i,thischr
strReturn = ""
Para i = 1 para Len(vstrIn)
EsteChr = Médio(vStrIn,i,1)
Se Abs(Asc(ThisChr)) < &HFF Então
strReturn = strReturn & ThisChr
Outro
código interno = Asc(ThisChr)
Se innerCode < 0 Então
código interno = código interno + &H10000
Terminar se
Hight8 = (innerCode e &HFF00) &HFF
Low8 = innerCode e &HFF
strReturn = strReturn & "%" & Hex(Hight8) & "%" & Hex(Low8)
Terminar se
Próximo
URLEncoding = strReturn
Função final
função getkey(chave)
dimoReq
definir oReq = CreateObject("MSXML2.XMLHTTP")
oReq.open "POST"," http://"&WebUrl&"/system/ShowGb2312XML.asp?a="&key,false
oReq.enviar
getkey=UTF2GB(oReq.responseText)
função final
função chinês2unicode(Str)
dimi
dim Str_one
dimStr_unicode
para i=1 para len(Str)
Str_one=Médio(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)
próximo
Resposta.Write Str_unicode
função final
função UTF2GB(UTFStr)
Dim escavação,GBSTR
para Dig=1 para len(UTFStr)
se mid(UTFStr,Dig,1)="%" então
se len(UTFStr) >= Dig+8 então
GBStr=GBStr & ConvChinês(mid(UTFStr,Dig,9))
Escavar=Escavar+8
outro
GBStr=GBStr & mid(UTFStr,Dig,1)
terminar se
outro
GBStr=GBStr & mid(UTFStr,Dig,1)
terminar se
próximo
UTF2GB=GBStr
função final
função ConvChinês(x)
dim a,i,j,DigS,Unicode
A=divisão(meio(x,2),"%")
eu=0
j=0
para i = 0 para ubound (A)
UMA(eu)=c16to2(UMA(eu))
próximo
para i=0 para ubound(A)-1
DigS=instr(A(i),"0")
Unicode=""
para j=1 para DigS-1
se j = 1 então
A(i)=direita(A(i),len(A(i))-DigS)
Unicode=Unicode & A(i)
outro
eu=eu+1
A(i)=direita(A(i),len(A(i))-2)
Unicode=Unicode & A(i)
terminar se
próximo
se len(c2to16(Unicode))=4 então
ConvChinês=ConvChinês & chrw(int("&H" & c2to16(Unicode)))
outro
ConvChinês=ConvChinês & chr(int("&H" & c2to16(Unicode)))
terminar se
próximo
função final
função U8Decode(enStr)
'Insira um monte de strings separadas por%, primeiro divida-as em arrays e julgue as regras de conclusão de acordo com as regras utf8
'Entrada: Desligado E5 85 Tecla B3 E9 94 Palavra AE E5 AD 97
'Saída: Desligada chave B9D8 palavra BCFC D7D6
dim c,i,i2,v,deStr,WeiS
para i=1 para len(enStr)
c=Médio(enStr,i,1)
se c = "%" então
v=c16to2(Mid(enStr,i+1,2))
'Determina a posição onde 0 aparece pela primeira vez,
'pode ser 1 (byte único), 3 (3-1 byte), 4, 5, 6, 7 não pode ser 2 e maior que 7
'Teoricamente chega a 7, mas na prática não vai ultrapassar 3.
WeiS=instr(v,"0")
v=right(v,len(v)-WeiS)'O primeiro remove o WeiS mais à esquerda
eu=eu+3
para i2=2 para WeiS-1
c=c16to2(Mid(enStr,i+1,2))
c=right(c,len(c)-2)'Remova os dois mais à esquerda do resto
v=v&c
eu=eu+3
próximo
se len(c2to16(v)) =4 então
deStr=deStr & chrw(c2to10(v))
outro
deStr=deStr & chr(c2to10(v))
terminar se
eu=eu-1
outro
se c = "+" então
deStr = deStr&" "
outro
deStr = deStr&c
terminar se
terminar se
próximo
U8Decode = deStr
função final
função c16to2(x)
'Esta função é usada para converter hexadecimal em binário. Geralmente, ao converter UTF-8, tem dois comprimentos, como A9.
'Por exemplo: insira "C2", será convertido em "11000010", onde 1100 é "c" que é 12 (1100) em decimal, então 2 (10) deve ser completado com 4 dígitos menores que 4 para se tornar ( 0010).
dimtempstr
dim i:i=0'ponteiro temporário
para i=1 para len(trim(x))
tempstr= c10to2(cint(int("&h" & mid(x,i,1))))
faça enquanto len(tempstr)<4
tempstr="0" & tempstr'Se houver menos de 4 dígitos, preencha 4 dígitos
laço
c16to2=c16to2 & tempstr
próximo
função final
função c2to16(x)
'Conversão de binário para hexadecimal, cada 4 0 ou 1 é convertido em uma letra hexadecimal, é claro que o comprimento da entrada não pode ser um múltiplo de 4
dim i:i=1' ponteiro temporário
para i=1 para len(x) etapa 4
c2to16=c2to16 & hex(c2to10(meio(x,i,4)))
próximo
função final
função c2to10(x)
'Conversão simples de binário para decimal, não considera o preenchimento de 4 zeros iniciais necessário para conversão para hexadecimal.
'Porque esta função é muito útil! Ele será usado no futuro, e as pessoas que fizeram comunicação e hardware devem saber disso.
'String é usado aqui para representar binário
c2to10=0
se x = "0" então saia da função 'Se for 0, basta obter 0 e pronto.
dim i:i=0'ponteiro temporário
for i= 0 to len(x) -1' Caso contrário, use o código 8421 para calcular. Isso é conhecido desde que comecei a aprender computadores. Sinto falta do Sr. Xie Daojian, que nos ensinou tanto.
se mid(x,len(x)-i,1)="1" então c2to10=c2to10+2^(i)
próximo
função final
função c10to2(x)
'Conversão de decimal para binário
sinal escuro, resultado
resultado = ""
'símbolo
sinal = sinal(x)
x = abs(x)
se x = 0 então
c10to2 = 0
função de saída
terminar se
faça até x = "0"
resultado = resultado & (x mod 2)
x =x2
laço
resultado = strReverse(resultado)
se sinal = -1 então
c10to2 = "-" & resultado
outro
c10to2 = resultado
terminar se
função final
função URLDecode(enStr)
dim deStr,strEspecial
dim c,i,v
deStr=""
strSpecial="!""#$%&'()*+,/:;<=>?@[]^`{ |}~%"
para i=1 para len(enStr)
c=Médio(enStr,i,1)
se c = "%" então
v=eval("&h"+Mid(enStr,i+1,2))
se inStr(strSpecial,chr(v))>0 então
deStr=deStr&chr(v)
eu=eu+2
outro
v=eval("&h"+Mid(enStr,i+1,2)+Mid(enStr,i+4,2))
deStr=deStr&chr(v)
eu=eu+5
terminar se
outro
se c = "+" então
deStr = deStr&" "
outro
deStr = deStr&c
terminar se
terminar se
próximo
URLDecode=deStr
Função final
Muitos códigos estão online. O autor não foi encontrado
PS: Tenho que aceitar as férias de verão agora, por motivos familiares, não quero ficar na minha cidade. .Não quero dizer o nome da cidade. Caso contrário, atrairei conhecidos. Enquanto não estiver aqui, você pode entrar em contato com a escola em Shandong que é considerada um ponto chave.
QQ: 32113739
Estou muito interessado. programação, mas só consigo o nome X de primeira classe na Olimpíada da Informação Porque acho que a tecnologia não deveria se refletir na chamada competição, assim como o talento não deveria. consegui o primeiro lugar em cada província em meus trabalhos eletrônicos... mas é apenas mediano. Meus estudos são medianos... então, desde que seja o foco geral... eu simplesmente não quero ficar muito perto de casa.
Agora o ASP é muito proficiente, embora existam algumas deficiências de conhecimento, como problemas de codificação (suor...), mas a rede é tão grande que acho que não posso apenas obter o chamado conhecimento dos livros didáticos. lendo o livro ASP.NET, se for caro O site da escola pode definitivamente ajudar.
Estou muito entusiasmado com as novas tecnologias. Embora seja chamado de pessoa com deficiência estética, quero ver a estrutura do meu programa sem vomitar sangue.
Esqueça... Mais posts.
Desenvolvi D Database +asp ->xml+xslt->xhtml +css é algo chamado
também usa o editor FCK usado pelo CSDN. descobri que ele foi alterado quando cheguei hoje. Mas o sistema FCK FIle Deixe-me mudar tudo.
Este sistema será definitivamente lançado antes do final das férias de verão. .. muitas pessoas não sabem xslt...
Se eu não conseguir encontrar a escola, posso vagar, talvez desaparecer. Claro que isso não é uma ameaça... Eu simplesmente odeio minha cidade, odeio tudo que vejo e faço lá.