- Const adTypeBinary = 1
- Const adTypeText = 2
-
- ' accept a string and convert it to Bytes array in the selected Charset
- Function StringToBytes(Str,Charset)
- ' Dim Stream
- Set Stream = CreateObject("ADODB.Stream")
- Stream.Type = adTypeText
- Stream.Charset = Charset
- Stream.Open
- Stream.WriteText Str
- Stream.Flush
- Stream.Position = 0
- ' rewind stream and read Bytes
- Stream.Type = adTypeBinary
- StringToBytes= Stream.Read
- Stream.Close
- Set Stream = Nothing
- End Function
-
- ' accept Bytes array and convert it to a string using the selected charset
- Function BytesToString(Bytes, Charset)
- ' Dim Stream
- Set Stream = CreateObject("ADODB.Stream")
- Stream.Charset = Charset
- Stream.Type = adTypeBinary
- Stream.Open
- Stream.Write Bytes
- Stream.Flush
- Stream.Position = 0
- ' rewind stream and read text
- Stream.Type = adTypeText
- BytesToString= Stream.ReadText
- Stream.Close
- Set Stream = Nothing
- End Function
-
- ' This will alter charset of a string from 1-byte charset(as windows-1252)
- ' to another 1-byte charset(as windows-1251)
- Function AlterCharset(Str, FromCharset, ToCharset)
- Dim Bytes
- Bytes = StringToBytes(Str, FromCharset)
-
- ' HEXS=""
- ' for i = 1 to LenB(Bytes)
- ' HEXS = HEXS & hex(ascb(MidB (Bytes, i, 1))) & ","
- ' next
- ' MsgBox HEXS
-
- AlterCharset = BytesToString(Bytes, ToCharset)
- End Function
-
-
- Set objWinHttp = CreateObject("WinHttp.WinHttpRequest.5.1")
- objWinHttp.Open "HEAD", "https://www.nyaa.se/?page=download&tid=613616"
- objWinHttp.Send
- MsgBox objWinHttp.GetResponseHeader("Content-Disposition")
- ' MsgBox LenB ( objWinHttp.GetResponseHeader("Content-Disposition") )
- MsgBox AlterCharset( objWinHttp.GetResponseHeader("Content-Disposition"), "GB2312", "utf-8")
复制代码
|