ASP中利用ADODB.Stream對象將位元組流轉換為字元流
來源:互聯網
上載者:User
'--------------------------------------------------------------------
' 二進位轉字串
'
' 入口參數:位元組流
' 函數返回:字串
' Code By:Madpolice 2002-12-20
' 利用 ADODB.Stream 對象,速度比原來的字元替換法快了n倍,n≈30!!)
'--------------------------------------------------------------------
'下面的常量是函數用到的,因為我在函數外面已經定義過了,因此不在這裡重複定義
'---- StreamTypeEnum Values ----
'Const adTypeBinary = 1
'Const adTypeText = 2
Function Bytes2bStr(vin)
Dim BytesStream,StringReturn
Set BytesStream = Server.CreateObject("ADODB.Stream") '建立一個流對象
With BytesStream
.Type = adTypeText '設定流對象的類型為字元流
.Open '開啟流對象
.WriteText vin '把vin寫入流對象中
.Position = 0 '設定流對象的起始位置是0,也就是開頭
'這個操作必須做,為什麼我也不知道,失敗了n次得出的結論
'如果不進行這個操作,下面設定Charset屬性就出錯
.Charset = "GB2312" '設定流對象的編碼方式為GB2312
.Position = 2 '設定流對象的起始位置是2(過濾掉開始的一個控制字元
'這個控制字元是WriteText方法按預設屬性Charset="Unicode"
'讀入資料的時候自動加到資料開頭的,字元的值是FF3F
'這個控制字元佔2位元組,所以Position設定為2
'表示略過2個位元組,下面的ReadText方法從Position開始讀資料
StringReturn = .ReadText '把流對象的內容儲存在StringReturn變數中
.close '關閉流對象
End With
Set BytesStream = Nothing '銷毀流對象
Bytes2bStr = StringReturn
End Function
'--------------------------------------------------------------------