2010年9月24日 星期五

利用adodb.stream作編碼轉換

會知道adodb.stream有這個功能是因為我用winhttprequest物件去要求網頁時
該網頁回傳的是用 big-5 編碼的網頁 導致我出現亂碼
接著我上網搜尋在 vbscript 中作編碼轉換的資料 於是發現 adodb.stream 有這種功能

如以下例子

dim http : set http = createobject("WinHttp.WinHttpRequest.5.1")
http.Open "http://some_big-5_page.html"
http.Send
http.WaitForResponse

msgbox http.ResponseText

Dim oStream : Set oStream = CreateObject("adodb.stream")
oStream.Type = 1                                       '以二進位方式操作
oStream.Mode = 3                                      '可同時進行讀寫
oStream.Open                                            '開啟物件
oStream.Write http.ResponseBody               '將 content 寫入物件內
oStream.Position = 0                                  '從頭開始
oStream.Type = 2                                       '以文字模式操作
oStream.Charset="Big5"                              '設定編碼方式
msgbox oStream.ReadText()

在這裡會發現第一次 跳出來的視窗有亂碼  但是第二次的視窗就正常了
adodb.stream很好很強大 而且它支援多種編碼 不只是big-5
真的很方便

沒有留言:

張貼留言