No sé por qué la codificación de los principales motores de búsqueda es diferente ahora. Por supuesto, es GB2312 o UTF-8. El problema de codificación es un dolor de cabeza ... es tan problemático ...
Obtenemos palabras clave, que generalmente se analizan a través de la URL de la página de visita. Por ejemplo
http://www.google.com/search?hl=zh-cn&q=%E5%ad%A4%E7%8B%ac&lr=
Todos saben que esto está codificado a través de Urlencode.
Necesitamos seguir 2 pasos para obtener la información. El primer paso es realizar UrlDecode. Cuando vivimos con parámetros ordinarios, esto lo hace el ASP en sí, pero ahora tenemos que hacer una decodificación manual.
Hay muchas funciones en línea, pero todas resuelven GB2312.Utf-8 para la página GB2312. Para esto, podemos decodificar fácilmente y luego juzgar su codificación según el motor de búsqueda. Si es UTF-8, se convertirá en GB2312.
Pero dado que mi sitio web es una página UTF-8. Y la página UTF-8 solo encontré la codificación Urldecode que resuelve los caracteres UTF-8. Hice una pausa aquí durante mucho tiempo, y al final solo pude usar el peor método para enviar las palabras clave divididas a una página ASP de GB2312 usando XMLHTTP, y luego vivir en código confundido (GB2312) y luego convertir GB2312 TOUTF-8.
El siguiente código de implementación principal.
PublicFunctionGetSearchKeyword (referente) 'Palabras clave de búsqueda
ifreferermurl = orlen (referente) <1ThenexitFunction
onerrorResumEnext
Dimre
Setre = newregexp
re.ignorecase = True
re.global = verdadero
Dima, b, j
'Palabras clave de búsqueda difusa, este método es más rápido y tiene un rango más grande
re.pattern = (word = ([^&]*) | q = ([^&]*) | p = ([^&]*) | Query = ([^&]*) | name = ([^&]*) | _SearchKey = ([^&]*) | Baidu.*? W = ((^&]*)))
Seta = re.execute (referente)
Ifa.count> 0then
Setb = a (A.Count-1) .Submatches
Forj = 1Tob.Count
Iflen (b (j))> 0
ifinstr (1, referente, Google, 1) entonces
GetSearchKeyword = TRIM (U8Decode (B (J)))
elseifinstr (1, referente, yahoo, 1) entonces
GetSearchKeyword = TRIM (U8Decode (B (J)))
Elseifinstr (1, referente, yisou, 1) entonces
GetSearchKeyword = TRIM (GetKey (B (J)))
Elseifinstr (1, referente, 3721,1) entonces
GetSearchKeyword = TRIM (GetKey (B (J)))
demás
GetSearchKeyword = TRIM (GetKey (B (J)))
endif
Extinción