麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > VBScript > 正文

vbs中將GB2312轉Unicode的代碼

2020-07-26 11:51:01
字體:
來源:轉載
供稿:網友
今天寫了一個類似于下面的程序:
復制代碼 代碼如下:

Dim http
Set http = CreateObject("msxml2.xmlhttp")
http.open "GET","http://www.sina.com.cn/",False
http.send
WScript.Echo http.responseText

但是卻發現返回的中文都是亂碼,看了一下發現新浪的編碼竟然是gb2312的,汗,現在都是utf-8編碼的時代了。responseText對utf-8編碼支持得很好,但是如果是gb2312編碼就會返回亂碼,有時甚至會報錯。無奈,只好用responseBody然后自己轉碼。
復制代碼 代碼如下:

Dim http
Set http = CreateObject("msxml2.xmlhttp")
http.open "GET","http://www.sina.com.cn/",False
http.send
WScript.Echo GB2312ToUnicode(http.responseBody)

于是就要自己寫一個GB2312ToUnicode函數,用ado很容易實現:
復制代碼 代碼如下:

Function GB2312ToUnicode(str)
With CreateObject("adodb.stream")
.Type = 1 : .Open
.Write str : .Position = 0
.Type = 2 : .Charset = "gb2312"
GB2312ToUnicode = .ReadText : .Close
End With
End Function

這樣返回的就是VBS字符串默認的Unicode編碼了,不過用ado不能顯示我鬼使神差的VBS水平,于是自己根據“算法”再寫了一個:
復制代碼 代碼如下:

Function GB2312ToUnicode(str)
length = LenB(str) : out = ""
For i = 1 To length
c = AscB(MidB(str,i,1))
If c <= 127 Then
out = out & Chr(c)
Else
i = i + 1
d = Hex(AscB(MidB(str,i,1)))
c = "&H" & Hex(c) & d
out = out & Chr(c)
End If
Next
GB2312ToUnicode = out
End Function

只可惜效率太低,就當練練手吧。
原文:http://demon.tw/programming/vbs-gb2312-unicode.html
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久综合九色综合久久久精品综合 | 国产成人高清在线观看 | 中午日产幕无线码1区 | 91社区电影 | 午夜亚洲视频 | 午夜视频在线免费观看 | 在线成人免费观看视频 | 天天艹综合 | 日产精品一区二区三区在线观看 | 国产一级片91 | 午夜爱爱福利 | 多人乱大交xxxxx变态 | 日韩在线播放一区二区 | 午夜视频久久 | 午夜视频在线看 | 久久中文一区 | 99国产精品自拍 | 国产精品视频一区二区噜噜 | 免费一级在线观看 | 九九黄色影院 | 国产瑟瑟视频 | 国产视频导航 | 亚洲午夜激情网 | 视频一区二区不卡 | 亚洲精品午夜电影 | 成人免费av在线播放 | 久久艹逼 | 国产精品视频免费网站 | 亚洲网视频| 性爱视频在线免费 | 国产免费网站视频 | 欧美成人二区 | 国产精品中文在线 | 欧美成人免费在线视频 | 欧美一级做a | 久久精品日韩一区 | 欧美成人高清视频 | 禁漫天堂久久久久久久久久 | 国产一区二区三区在线免费观看 | 精品二区在线观看 | 香蕉视频1024 |