Não sei por que a codificação dos principais mecanismos de pesquisa é diferente agora. Obviamente, é GB2312 ou UTF-8. O problema de codificação é uma dor de cabeça ... é tão problemático ...
Obtemos palavras -chave, que geralmente são analisadas através do URL da página de visita. Por exemplo
http://www.google.com/search?hl=zh-cn&q=%E5%AD%A4%E7%8B%AC&LR=
Todos vocês sabem que isso é codificado através do urlencode.
Precisamos seguir 2 etapas para obter as informações. O primeiro passo é executar o Urldecode. Quando vivemos com parâmetros comuns, isso é feito pelo próprio ASP, mas agora temos que fazer decodificação manual.
Existem muitas funções on-line, mas todas resolvem GB2312.utf-8 para a página GB2312. Para isso, podemos decodificá -lo primeiro facilmente e depois julgar sua codificação com base no mecanismo de pesquisa. Se for UTF-8, ele será convertido em GB2312.
Mas como meu site é uma página UTF-8. E a página UTF-8, achei apenas a codificação do Urldecode que resolve os caracteres UTF-8. Parei aqui por um longo tempo e, no final, só pude usar o pior método para enviar as palavras-chave divididas a uma página ASP do GB2312 usando o XMLHTTP e depois moro em código iluminado (GB2312) e depois converti GB2312 Toutf-8.
O seguinte código de implementação principal.
PublicFunctionGetSearchKeyWord (refereurl) 'Pesquisa -chave
ifRefereRurl = orlen (refereurl) <1ThenexitFunction
OnErrorReSumenext
Dimre
Setre = newRegexp
re.IGNORECASE = true
re.global = true
Dima, B, J.
'Palavras -chave de pesquisa difusa, esse método é mais rápido e tem uma faixa maior
re.pattern = (palavra = ([^&]*) | q = ([^&]*) | p = ([^&]*) | Query = ([^&]*) | name = ([^&]*) | _searchKey = ([^&]*) | Baidu.*
Seta = re.execute (refereurl)
Ifa.count> 0then
Setb = a (a.count-1) .submatches
Forj = 1TOB.Count
Iflen (b (j))> 0then
ifinstr (1, referenciado, google, 1) então
GetSearchKeyword = Trim (U8Decode (b (j)))
elseifinstr (1, referenciado, yahoo, 1) então
GetSearchKeyword = Trim (U8Decode (b (j)))
elseifinstr (1, referenciado, yisou, 1) então
GetSearchKeyword = Trim (getKey (b (j)))
ElseiFinstr (1, Refereurl, 3721,1) então
GetSearchKeyword = Trim (getKey (b (j)))
outro
GetSearchKeyword = Trim (getKey (b (j)))
endif
Saída de saída