先日システムのバージョンアップがあり、知らぬ間にShiftJISからMS932にエンコードへ変えられていました。
MSXML2.ServerXmlHttpではMS932には対応していないため、取得した文字列が正しくデコードされず、日本語が化けてしまいます。で、標準的なもので何とかならないものか。と調査してみると、ADODB.Streamで解決できることがわかりました。ということでこんな感じ(一部手打ちなので、エラーが出たらスマソ)。
Dim objHttp: Set objHttp = WScript.CreateObject("MSXML2.ServerXmlHttp")
Dim strXML
Call objHttp.Open("GET", "https://hogehoge.com/kintai/dakoku.do?id="&strID, False)
If objHttp.status = 200 Then
Dim objADO: Set objADO = WScript.CreateObject("ADODB.Stream")
objADO.Open
objADO.Type = 1'adTypeBinary
objADO.Write objHttp.responseBody
objADO.Position = 0
objADO.Type = 2'adTypeText
objADO.Charset = "Shift_JIS"
strXML = objADO.ReadText()
Else
MsgBox("HTTP ERROR !! CODE=" & objHttp.status)
End If
Dim strXML
Call objHttp.Open("GET", "https://hogehoge.com/kintai/dakoku.do?id="&strID, False)
If objHttp.status = 200 Then
Dim objADO: Set objADO = WScript.CreateObject("ADODB.Stream")
objADO.Open
objADO.Type = 1'adTypeBinary
objADO.Write objHttp.responseBody
objADO.Position = 0
objADO.Type = 2'adTypeText
objADO.Charset = "Shift_JIS"
strXML = objADO.ReadText()
Else
MsgBox("HTTP ERROR !! CODE=" & objHttp.status)
End If
0 件のコメント:
コメントを投稿