Je ne sais pas pourquoi le codage des principaux moteurs de recherche est différent maintenant. Bien sûr, c'est soit GB2312 ou UTF-8. Le problème de codage est un mal de tête ... c'est tellement gênant ...
Nous obtenons des mots clés, qui sont généralement analysés via l'URL de la page de visite. Par exemple
http://www.google.com/search?hl=zh-cn&q=%E5%AD%A4%E7%8B%AC&lr=
Vous savez tous que cela est codé via UrleNcode.
Nous devons passer par 2 étapes pour obtenir les informations. La première étape consiste à effectuer URLDECODE. Lorsque nous vivons avec des paramètres ordinaires, cela se fait par l'ASP lui-même, mais maintenant nous devons faire un décodage manuel.
Il existe de nombreuses fonctions en ligne, mais elles résolvent toutes GB2312.UTF-8 pour la page GB2312. Pour cela, nous pouvons facilement le décoder d'abord, puis juger son encodage en fonction du moteur de recherche. S'il est UTF-8, il sera converti en GB2312.
Mais comme mon site Web est une page UTF-8. Et la page UTF-8 Je n'ai trouvé que le codage UrLDECODE qui résout les caractères UTF-8. Je me suis arrêté ici pendant longtemps, et en fin de compte, je n'ai pu utiliser la pire méthode pour soumettre les mots clés divisés à une page ASP de GB2312 en utilisant XMLHTTP, puis je vis dans du code brouillé (GB2312), puis convertir GB2312 TOTF-8.
Le code d'implémentation principal suivant.
PublicFunctionGetSearchKeyword (référentiel) 'Rechercher des mots clés
ifreferrerurl = orlen (référentiel) <1ThenexitFunction
onerrorresumenext
Tabac
SetRe = newRegexp
re.ignorecase = true
re.global = true
Dima, B, J
'Mots-clés de recherche floue, cette méthode est plus rapide et a une plus grande portée
re.Pattern = (word = ([^ &] *) | q = ([^ &] *) | p = ([^ &] *) | query = ([^ &] *) | name = ([^ &] *) | _searchkey = ([^ &] *) | baidu. *? W = ([^ &] *))
Seta = re.execute (référentiel)
Ifa.Count> 0ment
SetB = a (a.count-1) .submatchs
Forj = 1tob.Count
Iflen (b (j))> 0ment
iFinstr (1, référentiel, google, 1) puis
GetSearchKeyWord = Trim (u8DECODE (B (J)))
ElseiFinstr (1, référentiel, yahoo, 1) alors
GetSearchKeyWord = Trim (u8DECODE (B (J)))
ElseiFinstr (1, référente, yisou, 1) alors
GetSearchKeyWord = Trim (getKey (b (j)))
ElseiFinstr (1, référentiel, 3721,1) alors
GetSearchKeyWord = Trim (getKey (b (j)))
autre
GetSearchKeyWord = Trim (getKey (b (j)))
endire
Sortie