六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

XMLHTTP Get HTML頁(yè)面時(shí)的中文亂碼之完全客戶端Script處理方案

[摘要]常有人說(shuō),他們?cè)谑褂肵MLHTTP過(guò)程中,總是為中文亂碼的問(wèn)題煩惱。本人查閱了一些資料,結(jié)果令我失望,大家都是使用ASP服務(wù)器端技術(shù)解決該問(wèn)題。 先分析一下為何會(huì)出現(xiàn)中文亂碼的問(wèn)題。原因很簡(jiǎn)單:XMLHTTP得到Response時(shí)假定Response是UTF8編碼的,它把含GB2312編碼的...

    常有人說(shuō),他們?cè)谑褂肵MLHTTP過(guò)程中,總是為中文亂碼的問(wèn)題煩惱。本人查閱了一些資料,結(jié)果令我失望,大家都是使用ASP服務(wù)器端技術(shù)解決該問(wèn)題。
    先分析一下為何會(huì)出現(xiàn)中文亂碼的問(wèn)題。原因很簡(jiǎn)單:XMLHTTP得到Response時(shí)假定Response是UTF8編碼的,它把含GB2312編碼的HTML當(dāng)成UTF8格式,因此,出現(xiàn)了中文亂碼。
    那么,除了使用ASP服務(wù)器端腳本技術(shù)外,就沒(méi)有客戶端的解決辦法嗎?答案是:有!
    本人使用VBScript客戶端腳本,成功實(shí)現(xiàn)了不使用ASP,解決了XMLHTTP 抓取 HTML頁(yè)面時(shí)出現(xiàn)中文亂碼的問(wèn)題。
    為何使用VBScript,而不是大家常用的JScript?XMLHTTP的responseBody返回的是一個(gè)unsigned bytes數(shù)組。VBScript提供了許多用于操作字符串和格式化數(shù)據(jù)的函數(shù),以及訪問(wèn)安全數(shù)組的方法。這些函數(shù)或方法在JScript中并不存在。這里我們需要使用VBScript的內(nèi)置函數(shù):MidB、AscB、LenB等,來(lái)訪問(wèn)responseBody。
    說(shuō)句題外話,我不是在強(qiáng)調(diào)VBScript比JScript好,而是二者都有自己的特點(diǎn)。第一次在CSDN上寫文章,謝謝大家支持。寫這邊文章有兩個(gè)目的:一、鍛煉自己;二、希望大家遇到問(wèn)題時(shí),要學(xué)會(huì)分析問(wèn)題,做到有的放矢,知其然也知其所以然。
    我給出代碼Test.htm,它包括了獲取自身代碼和獲取其他網(wǎng)頁(yè)代碼兩種應(yīng)用,具體腳本如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- 作者:小林,[email protected] -->
<HTML>

<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=gb2312">
</HEAD>

<script language=VBScript>

Function bytes2BSTR(vIn)
    strReturn = ""
    For i = 1 To LenB(vIn)
        ThisCharCode = AscB(MidB(vIn,i,1))
        If ThisCharCode < &H80 Then
            strReturn = strReturn & Chr(ThisCharCode)
        Else
            NextCharCode = AscB(MidB(vIn,i+1,1))
            strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
            i = i + 1
        End If
    Next
    bytes2BSTR = strReturn
End Function

Function viewSource1()
 dim XmlHttp
 set XmlHttp = CreateObject("Microsoft.XMLHTTP")
 XmlHttp.Open "GET", document.location.href, false
 XmlHttp.setRequestHeader "Content-Type","text/XML"
 XmlHttp.Send
 
 dim html
 html = bytes2BSTR(XmlHttp.responseBody)
 msgbox html
End Function

Function viewSource2()
 dim XmlHttp
 set XmlHttp = CreateObject("Microsoft.XMLHTTP")
 XmlHttp.Open "GET", "http://www.google.com", false
 XmlHttp.setRequestHeader "Content-Type","text/XML"
 XmlHttp.Send
 
 dim html
 html = bytes2BSTR(XmlHttp.responseBody)
 msgbox html
End Function

</script>

<BODY bgcolor=gainsboro style='border:1pt solid white'>
<TABLE class=text>
 <tr>
  <td class=text>XMLHTTP Get HTML頁(yè)面時(shí)的中文亂碼之完全客戶端Script解決方案</td>
 </tr>
 <tr>
  <td class=button><button onclick=viewSource1()>查看自身的網(wǎng)頁(yè)代碼</button></td>
 </tr>
 <tr>
  <td class=button><button onclick=viewSource2()>查看google主頁(yè)代碼</button></td>
 </tr> 
</TABLE>
</BODY>
</HTML>




主站蜘蛛池模板: 又粗又硬又大又爽免费视频播放 | 婷婷色九月综合激情丁香 | 最好免费高清视频观看韩国 | 四虎精品8848ys一区二区 | 天天操天天曰 | 四虎国产精品永免费 | 亚洲天堂视频在线观看免费 | 奇米在线影视一区二区三 | 丝袜美腿亚洲一区二区图片 | 亚洲国产综合精品中文字幕 | 中文天堂在线最新2022更新 | 天堂网在线最新版www中文网 | 亚洲精品美女在线观看 | 亚洲国产精品久久卡一 | 亚洲欧美一级视频 | 婷婷色香五月激情综合2020 | 亚洲乱码一区二区三区国产精品 | 欧美视频综合 | 日本a级片免费观看 | 日韩精品视频美在线精品视频 | 日韩中文字幕在线免费观看 | 亚洲视频一区二区在线观看 | 人人公开免费超级碰碰碰视频 | 色天天综合色天天碰 | 婷婷色九月 | 日韩在线免费视频 | 天堂网www在线资源中文 | 欧美性猛交xxxx | 天堂中文在线资源 | 香蕉欧美成人精品a∨在线观看 | 中文字幕一区二区三区四区五区人 | 日本www色视频成人免费 | 亚洲精品91在线 | 性欧美xxxx | 四虎影视成人永久在线播放 | 日韩美女在线视频网站免费观看 | 日本一本高清视频 | 清纯制服被啪啪护士 | 日本伊人网 | 天天搞天天色 | 亚洲综合色网 |