나는 오랫동안 웹 페이지 코딩을 연구해 왔습니다. 최근에 친숙한 링크 감지를 위한 VBS 스크립트를 설계해야 하는데, 귀하가 링크한 사람들의 페이지가 다양한 인코딩으로 되어 있을 가능성이 높기 때문입니다.'/*===== ======== ========================================= ======== ==========
'*소개 나는 오랫동안 웹 페이지 코딩을 연구해 왔습니다. 최근에 친숙한 링크 감지를 위한 VBS 스크립트를 디자인해야 하는데, 링크하는 사람의 페이지가 다양한 인코딩으로 되어 있을 가능성이 높기 때문입니다. GB2312를 사용하여 찾을 수 없으며 UTF -8 확인을 사용하면 상대방이 귀하에게 연결하지 않았다는 증거를 찾을 수 없습니다. 비록 100% 정확하지는 않지만 이것을 사용하는 사람들이 더 많습니다. 코드 2개. 즐겨찾기에 있는 주소에서 우연히 아이디어를 보았는데, 기사를 수집할 때 마침내 웹페이지의 인코딩을 자동으로 결정하는 것이 가능해졌습니다. 이 문제는 연구 과정에서 오랫동안 나를 괴롭혔기 때문에 지금은 간단해 보이지만 여전히 많은 사람들이 찾고 있을 것 같아서 이 세 가지 기능을 게시했습니다.
' * 파일 이름 GetWebCodePage.vbs
' * 작성자 yongfa365
' * 버전 v2.0
' * 웹 http://www.yongfa365.com
' * 이메일 yongfa365[at]qq.com
' * FirstWrite http://www.yongfa365.com/Item/GetWebCodePage.vbs.html
' * MadeTime 2008-01-29 20:55:46
' * 마지막 수정 2008-01-30 20:55:46
' *=============================================== ===========================*/
getHTTPPage(http://www.baidu.com/)에 전화하세요.
getHTTPPage(http://www.google.com/)에 전화하세요.
getHTTPPage(http://www.yongfa365.com/)로 전화하세요.
getHTTPPage(http://www.cbdcn.com/)로 전화하세요.
getHTTPPage(http://www.csdn.net/)로 전화하세요.
'일치하는 내용을 얻고 배열을 반환합니다.
'getContents(expression, string, 참조값 반환 여부)
'msgbox getContents(a(.+?)b, a23234b ab a67896896b sadfasdfb ,True)(0)
함수 getContents(patrn, strng, yinyong)
'by www.yongfa365.com 최종 사용자가 최신 업데이트 정보를 적시에 얻을 수 있도록 재인쇄 시 링크를 유지해 주세요.
오류 발생 시 다음 재개
re = New RegExp로 설정
re.Pattern = 패턴
re.IgnoreCase = 참
re.Global = 참
일치 항목 설정 = re.Execute(strng)
그렇다면
i = 0의 경우 Matches.Count -1
If Matches(i).Value<> 그러면 RetStr = RetStr & Matches(i).SubMatches(0) & Liu Yongfa
다음
또 다른
일치하는 각 oMatch에 대해
oMatch.Value<>이면 RetStr = RetStr & oMatch.Value & Liu Yongfa
다음
종료 조건
getContents = Split(RetStr, 류용파)
기능 종료
함수 getHTTPPage(url)
오류 발생 시 다음 재개
xmlhttp = CreateObject(MSXML2.XMLHTTP) 설정
xmlhttp.Open Get, url, False
xmlhttp.보내기
xmlhttp.Status<>200이면 함수 종료
GetBody = xmlhttp.ResponseBody
여기서 'Liu Yongfa(www.yongfa365.com)'의 아이디어는 반환된 문자열을 기반으로 먼저 검색하여 파일 헤더가 없으면 GB2312를 사용하는 것입니다. 일반적으로 인코딩은 직접 일치될 수 있습니다.
'반환된 문자열을 보면 한자가 깨져 있기는 하지만 인코딩에는 영향을 주지 않습니다.
GetCodePage = getContents(charset=[']*([^,']+), xmlhttp.ResponseText, True)(0)
'헤더 파일의 인코딩을 살펴보세요.
Len(GetCodePage)<3이면 GetCodePage = getContents(charset=[']*([^,']+), xmlhttp.getResponseHeader(Content-Type) , True)(0)
Len(GetCodePage)<3이면 GetCodePage = gb2312
xmlhttp = 없음 설정
'다음 문장은 형식적으로 사용될 때 차단되어야 합니다.
WScript.Echo URL & --> & GetCodePage
getHTTPPage = BytesToBstr(GetBody, GetCodePage)
기능 종료
함수 BytesToBstr(Body, Cset)
오류 발생 시 다음 재개
희미한 객체 스트림
objstream = CreateObject(adodb.stream) 설정
objstream.Type = 1
objstream.Mode = 3
objstream.Open
objstream.쓰기 본문
objstream.위치 = 0
objstream.Type = 2
objstream.Charset = Cset
BytesToBstr = objstream.ReadText
objstream.Close
objstream = 없음 설정
기능 종료