물론 지금은 주요 검색 엔진의 인코딩이 왜 다른지 모르겠습니다. 물론 gb2312인지 utf-8인지는 모르겠습니다. 인코딩 문제가 골치 아프네요..
보통 방문을 통해 키워드를 얻습니다. 예를 들어
http://www.google.com/search?hl=zh-CN&q=%E5%AD%A4%E7%8B%AC&lr =
URL이 urlencode로 인코딩되어 있음을 알아야 합니다.
우리는 정보를 2단계로 수행해야 합니다. 첫 번째 단계는 urldecoding을 수행하는 것입니다. 일반 매개변수가 유효한 경우 이는 asp 자체에서 수행되지만 이제는
인터넷에서 많은 기능을
수행해야 합니다., 그러나 모두 gb2312 페이지의 Decode gb2312.utf-8에 대한 것입니다. 이를 위해 먼저 쉽게 디코딩한 다음 검색 엔진에 따라 인코딩을 판단한 다음 gb2312로 변환합니다. 하지만
내 웹사이트는 utf-8 페이지이기 때문에 내가 찾은 유일한 것은 utf-8 문자의 urldecode 인코딩뿐이었습니다. 최악의 방법은 xmlhttp를 사용하여 분리된 키워드를 제출하는 것입니다. gb2312 asp 페이지로 이동한 다음 잘못된 코드(gb2312) 후 gb2312를 utf-8로 변환합니다.
다음은 주요 구현 코드입니다
. 키워드
RefererUrl="" 또는 len(RefererUrl)<1인 경우 함수를 종료합니다.
오류 발생 시 다음 재개
희미한 re
re = New RegExp로 설정
re.IgnoreCase = 참
re.Global = 참
희미한 a,b,j
'퍼지 검색 키워드, 이 방법은 더 빠르고 범위가 더 넓습니다.
re.Pattern = "(word=([^&]*)|q=([^&]*)|p=([^&]*)|query=([^&]*)|name=([ ^&]*)|_searchkey=([^&]*)|baidu.*?w=([^&]*))"
a = re.Execute(RefererUrl) 설정
a.Count>0이면
b = a(a.Count-1).SubMatches 설정
j=1에서 b.Count까지
Len(b(j))>0이면
if instr(1,RefererUrl,"google",1) 그러면
GetSearchKeyword=Trim(U8Decode(b(j)))
elseif instr(1,refererurl,"yahoo",1) 그런 다음
GetSearchKeyword=Trim(U8Decode(b(j)))
elseif instr(1,refererurl,"yisou",1) 그런 다음
GetSearchKeyword=Trim(getkey(b(j)))
elseif instr(1,refererurl,"3721",1) 그런 다음
GetSearchKeyword=Trim(getkey(b(j)))
또 다른
GetSearchKeyword=Trim(getkey(b(j)))
종료하면
종료 기능
종료하면
다음
종료 조건
만약 그렇다면
오류가 발생했습니다.지우기
GetSearchKeyword = RefererUrl
또 다른
GetSearchKeyword = ""
종료하면
기능 종료
함수 URLEncoding(vstrIn)
희미한 strReturn,i,thischr
strReturn = ""
i = 1의 경우 Len(vstrIn)으로
ThisChr = Mid(vStrIn,i,1)
Abs(Asc(ThisChr)) < &HFF 그러면
strReturn = strReturn & ThisChr
또 다른
innerCode = Asc(ThisChr)
innerCode < 0이면
innerCode = innerCode + &H10000
종료 조건
Hight8 = (innerCode 및 &HFF00) &HFF
Low8 = innerCode 및 &HFF
strReturn = strReturn & "%" & Hex(Hight8) & "%" & Hex(Low8)
종료 조건
다음
URLEncoding = strReturn
기능 종료
함수 getkey(키)
dimoReq
oReq = CreateObject("MSXML2.XMLHTTP") 설정
oReq.open "POST"," http://"&WebUrl&"/system/ShowGb2312XML.asp?a="&key,false
o요청 보내기
getkey=UTF2GB(oReq.responseText)
함수 종료
함수 Chinese2unicode(Str)
디미
희미한 Str_one
희미한 문자열_유니코드
i=1에서 len(Str)까지
Str_one=중간(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)
다음
응답.Str_unicode 쓰기
함수 종료
기능 UTF2GB(UTFStr)
희미한 발굴, GBSTR
Dig=1에서 len(UTFStr)까지
mid(UTFStr,Dig,1)="%"인 경우
len(UTFStr) >= Dig+8이면
GBStr=GBStr & Conv중국어(mid(UTFStr,Dig,9))
파기=파기+8
또 다른
GBStr=GBStr & mid(UTFStr,Dig,1)
종료하면
또 다른
GBStr=GBStr & mid(UTFStr,Dig,1)
종료하면
다음
UTF2GB=GBStr
함수 종료
함수 Conv중국어(x)
희미한 a,i,j,DigS,유니코드
A=분할(mid(x,2),"%")
나는=0
j=0
i=0에서 ubound(A)까지
A(i)=c16to2(A(i))
다음
i=0에서 ubound(A)-1까지
DigS=instr(A(i),"0")
유니코드=""
j=1 ~ DigS-1의 경우
j=1이면
A(i)=right(A(i),len(A(i))-DigS)
유니코드=유니코드 & A(i)
또 다른
나=나+1
A(i)=right(A(i),len(A(i))-2)
유니코드=유니코드 & A(i)
종료하면
다음
len(c2to16(Unicode))=4이면
Conv중국어=Conv중국어 & chrw(int("&H" & c2to16(유니코드)))
또 다른
Conv중국어=Conv중국어 & chr(int("&H" & c2to16(유니코드)))
종료하면
다음
함수 종료
function U8Decode(enStr)
'%로 구분된 문자열 묶음을 입력하고 먼저 배열로 나누고 utf8 규칙에 따라 완성 규칙을 판단합니다.
'입력: 꺼짐 E5 85 B3 키 E9 94 AE 워드 E5 AD 97
'출력: Off B9D8 키 BCFC 워드 D7D6
i=1 ~ len(enStr)의 경우
희미한 c,i,i2,v,deStr,WeiS
c=중간(enStr,i,1)
c="%"이면
v=c16to2(Mid(enStr,i+1,2))
'0이 처음 나타나는 위치를 정하고,
'1(단일 바이트), 3(3-1바이트)일 수 있으며, 4, 5, 6, 7은 2 이상 7보다 클 수 없습니다.
'이론적으로는 7에 도달하지만 실제로는 3을 초과하지 않습니다.
WeiS=instr(v,"0")
v=right(v,len(v)-WeiS)'첫 번째는 가장 왼쪽의 WeiS를 제거합니다.
나=나+3
i2=2에서 WeiS-1까지
c=c16to2(Mid(enStr,i+1,2))
c=right(c,len(c)-2)'나머지 중에서 가장 왼쪽에 있는 두 개를 제거합니다.
v=v & c
나=나+3
다음
len(c2to16(v)) =4이면
deStr=deStr & chrw(c2to10(v))
또 다른
deStr=deStr & chr(c2to10(v))
종료하면
나는=i-1
또 다른
c="+"이면
deStr=deStr&" "
또 다른
deStr=deStr&c
종료하면
종료하면
다음
U8Decode = deStr
끝 기능
기능 c16to2(x)
'이 함수는 16진수를 2진수로 변환하는 데 사용됩니다. 일반적으로 UTF-8로 변환할 때 A9와 같이 두 가지 길이가 가능합니다.
'예: "C2"를 입력하면 "11000010"으로 변환됩니다. 여기서 1100은 "c"로 십진수로 12(1100)이고, 2(10)는 4보다 작은 4자리로 완성되어야 ( 0010).
딤템프스트
' i=1에서 len(trim(x))에 대한
임시 포인터
tempstr= c10to2(cint(int("&h" & mid(x,i,1))))
len(tempstr)<4 동안 수행
tempstr="0" & tempstr'숫자가 4자리 미만이면 4자리를 채워주세요
고리
c16to2=c16to2 & 임시 직원
다음
끝 기능
기능 c2to16(x)
'2진수에서 16진수로 변환, 4 0 또는 1마다 16진수 문자로 변환됩니다. 물론 입력 길이는 4의 배수일 수 없습니다.
희미 i:i=1' 임시 포인터
i=1부터 len(x)까지 4단계
c2to16=c2to16 & hex(c2to10(mid(x,i,4)))
다음
끝 함수
함수 c2to10(x)
'간단한 이진수를 십진수로 변환하는 경우 16진수로 변환하는 데 필요한 앞에 4개의 0 채우기를 고려하지 않습니다.
'이 기능이 정말 유용하거든요! 앞으로 쓰일 내용이니 통신이나 하드웨어 관련 일을 해본 사람들은 알아야 할 내용이다.
'여기서 문자열은 바이너리를 나타내는 데 사용됩니다.
c2to10=0
x="0"이면 함수를 종료합니다. '0이면 0을 얻고 완료됩니다.
희미한 i:i=0'임시 포인터
for i= 0 to len(x) -1' 그렇지 않으면 8421 코드를 사용하여 계산합니다. 이것은 제가 처음 컴퓨터를 배우기 시작할 때부터 알려져 왔습니다. 우리에게 많은 것을 가르쳐주신 Xie Daojian 선생님이 그리워요!
mid(x,len(x)-i,1)="1"이면 c2to10=c2to10+2^(i)
다음
끝 기능
기능 c10to2(x)
'10진수를 2진수로 변환
희미한 기호, 결과
결과 = ""
'상징
부호 = sgn(x)
x = 절대(x)
x = 0이면
c10to2 = 0
종료 기능
종료하면
x = "0"이 될 때까지 수행
결과 = 결과 & (x mod 2)
x = x2
고리
결과 = strReverse(결과)
부호 = -1이면
c10to2 = "-" 및 결과
또 다른
c10to2 = 결과
종료하면
끝 기능
function URLDecode(enStr)
희미한 deStr,strSpecial
희미한 c,i,v
deStr=""
strSpecial="!""#$%&'()*+,/:;<=>?@[]^`{ |}~%"
i=1에서 len(enStr)까지
c=중간(enStr,i,1)
c="%"이면
v=eval("&h"+Mid(enStr,i+1,2))
inStr(strSpecial,chr(v))>0이면
deStr=deStr&chr(v)
나=나+2
또 다른
v=eval("&h"+Mid(enStr,i+1,2)+Mid(enStr,i+4,2))
deStr=deStr&chr(v)
나는=나+5
종료하면
또 다른
c="+"이면
deStr=deStr&" "
또 다른
deStr=deStr&c
종료하면
종료하면
다음
URLDecode=deStr
종료 기능
많은 코드가 온라인에 있습니다.
추신: 가족 문제로 인해 지금은 고등학교 입학 시험이 지역에 집중되고 싶지 않습니다. . 도시 이름은 말하고 싶지 않습니다. 그렇지 않으면 제가 여기에 없는 한
QQ: 32113739
에 관심이
있는 학교에 연락할 수 있습니까?프로그래밍은 정보올림피아드에서만 1급 X명을 받을 수 있다. 재능이 반영되어서는 안되는 것처럼 기술도 소위 경쟁에 반영되어서는 안 된다고 생각하기 때문이다. 그 무의미한 시험에서도 성과는 똑같다. 내 전자 작업에서 각 지역에서 1위를 얻었습니다... 하지만 그것은 단지 평균입니다. 내 연구는 평균입니다... 따라서 그것이 일반적인 초점인 한... 나는 단지 집에 너무 가까이 있고 싶지 않습니다.
이제 ASP는 매우 능숙하지만 코딩 문제(땀...)와 같은 지식 부족이 있지만 네트워크가 너무 커서 소위 지식을 교과서에서만 얻을 수는 없다고 생각합니다. ASP.NET 책을 읽으면 비용이 많이 들기 때문에 학교 웹사이트가 확실히 도움이 될 수 있습니다.
저는 미적 장애가 있는 사람이라고 불리지만 피를 흘리지 않고 프로그램의 구조를 보고 싶습니다.
잊어버리세요... 더 많은 게시물.
제가 개발한 D Database +asp ->xml+xslt->xhtml +css는 CMS라는 것입니다.
도 제가 찾은 CSDN에서 사용하는 FCK 편집기를 사용합니다. 오늘 올라오면서 바뀌었다고 하는데 FCK 파일 시스템은 다 바꾸겠습니다.
이 시스템은 확실히 여름방학이 끝나기 전에 출시될 예정입니다. 하지만 많은 친구들이 사용 편의성에 문제가 있다고 말합니다. .. xslt 하는 방법을 모르는 사람들이 많네요. 한숨...
학교를 찾지 못하면 헤매거나 사라질 수도 있습니다. 물론 이것은 위협이 아닙니다... 나는 단지 우리 도시가 싫을 뿐입니다. 내가 거기서 보고 하는 모든 것이 싫다.