원 격 페이지 캡 처 중의 난 장 판 문 제 를 어떻게 해결 합 니까?

평소 사용 하 는 웹 페이지 파일 은 기본적으로 gb 2312 인 코딩 방식 이기 때문에 xmlhttp 컨트롤 을 통 해 읽 으 면 어 지 러 운 문제 가 발생 할 수 있 지만 모든 파일 을 utf-8 인 코딩 으로 바 꾸 려 면 조작 이 번 거 롭 습 니 다.반복 적 인 비 교 를 통 해 나 는 상대 적 으로 실 용적 인 해결 방법 을 찾 았 다.ff 는 overrideMime Type 방법 을 제공 하여 반환 값 의 인 코딩 을 지정 할 수 있 기 때문에 해결 이 비교적 간단 합 니 다.이 방법 을 gb 2312 에 가리 키 기만 하면 됩 니 다.IE 에 대해 서 는 vbs 배합 으로 인 코딩 변환 을 할 수 있 으 며,gb2utf 8 로 받 은 바 이 너 리 데 이 터 를 변환 할 수 있 으 며,그 중에서 execScript 방법 으로 vbs 의 함 수 를 호출 할 수 있 습 니 다

<body></body>
<script>
loadPage("index.htm")
function loadPage(url){
    var xh=window.Event?new XMLHttpRequest():new ActiveXObject("Microsoft.XMLHTTP")
    xh.open("GET",url,true)
    if(window.Event)
        xh.overrideMimeType("text/xml;charset=gb2312")
    xh.onreadystatechange=function(){
        if(xh.readyState!=4)
            return
        var v
        v=window.Event?xh.responseText:window.gb2utf8(xh.responseBody)
        alert(v)
    }
    window.gb2utf8=function(data){
        var glbEncode=[],t,i,j,len
        gb2utf8_data=data
        execScript("gb2utf8_data = MidB(gb2utf8_data, 1)+' '", "vbscript")
        t=escape(gb2utf8_data).replace(/%u/g,"").replace(/(.{2})(.{2})/g,"%$2%$1").replace(/%([A-Z].)%(.{2})/g,"@$1$2")
        t=t.split("@")
        i=0
        len=t.length
        while(++i<len){
            j=t[i].substring(0,4)
            if(!glbEncode[j]) {
                gb2utf8_char = eval("0x"+j)
                execScript("gb2utf8_char=Chr(gb2utf8_char)","vbscript")
                glbEncode[j]=escape(gb2utf8_char).substring(1,6)
            }
            t[i]=glbEncode[j]+t[i].substring(4)
        }
        gb2utf8_data=gb2utf8_char=null
        return unescape(t.join("%")).slice(0,-1)
    }
    xh.send(null)
}
</script>

좋은 웹페이지 즐겨찾기