주요 검색 엔진의 코딩이 왜 다른지 모르겠습니다. 물론 GB2312 또는 UTF-8입니다. 코딩 문제는 두통입니다 ... 너무 귀찮습니다 ...
우리는 일반적으로 방문 페이지의 URL을 통해 분석되는 키워드를 얻습니다. 예를 들어
http://www.google.com/search?hl=zh-cn&q=%E5%AAD%A4%E7%8B%AC&lr=
당신은 이것이 Urlencode를 통해 인코딩된다는 것을 알고 있습니다.
정보를 얻으려면 2 단계를 거쳐야합니다. 첫 번째 단계는 UrlDecode를 수행하는 것입니다. 우리가 일반 매개 변수로 살 때, 이것은 ASP 자체에 의해 수행되지만 이제는 수동 디코딩을해야합니다.
온라인에서 많은 기능이 있지만 GB2312 페이지의 GB2312.UTF-8을 모두 해결합니다. 이를 위해 먼저 쉽게 디코딩 한 다음 검색 엔진을 기반으로 인코딩을 판단 할 수 있습니다. UTF-8 인 경우 GB2312로 변환됩니다.
그러나 내 웹 사이트는 UTF-8 페이지이기 때문에. UTF-8 페이지는 UTF-8 문자를 해결하는 URLDECODE 인코딩 만 발견했습니다. 나는 오랫동안 여기서 잠시 멈추었고 결국 최악의 방법 만 사용하여 XMLHTTP를 사용하여 GB2312의 ASP 페이지에 분할 키워드를 제출 한 다음 grabled 코드 (GB2312)로 거주 한 다음 GB2312 Toutf-8을 변환 할 수있었습니다.
다음 주요 구현 코드.
publicFunctionGetSearchKeyword (refererUrl) '검색 키워드
ifrefererurl = orlen (refererurl) <1thenexitFunction
onerrorresumenext
딤 스
setre = newRegexp
re.ignorecase = true
re.global = true
Dima, B, J.
'퍼지 검색 키워드,이 방법은 더 빠르고 더 큰 범위를 가지고 있습니다.
re.pattern = (word = ([^&]*) | q = ([^&]*) | p = ([^&]*) | query = ([^&]*) | name = ([^&]*) | _searchKey = ([^&]*) | baidu.*? w = ([^&]*)
seta = re.Execute (refererUrl)
ifa.count> 0then
setb = a (a.count-1) .submatches
forj = 1tob.count
iflen (b (j))> 0then
ifinstr (1, refererurl, Google, 1)
getSearchKeyword = trim (u8decode (b (j)))
elseifinstr (1, refererurl, yahoo, 1)
getSearchKeyword = trim (u8decode (b (j)))
elseifinstr (1, refererurl, yisou, 1)
getSearchKeyword = trim (getkey (b (j)))
elseifinstr (1, refererurl, 3721,1)
getSearchKeyword = trim (getkey (b (j)))
또 다른
getSearchKeyword = trim (getkey (b (j)))
endif
종료 기능