gpt4 book ai didi

windows - 如何使用 Windows 脚本下载字符编码不正确的网页?

转载 作者:塔克拉玛干 更新时间:2023-11-01 19:10:45 25 4
gpt4 key购买 nike

我正在尝试使用 WSH 下的 JScript 下载此测试页 http://173.192.48.92/test.php

我正在像这样使用 WinHttp 组件:

WinHTTP = WScript.CreateObject('WinHttp.WinHttpRequest.5.1') ;
WinHTTP.Open( 'GET', 'http://173.192.48.92/test.php' ) ;
WinHTTP.Send() ;
WScript.echo( WinHTTP.responseText ) ;

但我无法让它工作。 WinHttp 触发运行时错误,因为页面有 Content-Type: text/html; charset=UTF-8 但页面的实际内容是 latin1。

有没有一种方法可以使用 WSH 获取 URL 的内容,无论该内容是什么?

PS: 我使用的是 Windows Vista SP2 和 IE9

最佳答案

我不确定我是否会解决您的问题,但至少会尝试。

当您在 WSH 中运行脚本时,IE 版本并不重要,因为它们使用单​​独的脚本主机。您的脚本在我的 XP x64 下工作得很好。

好的,我的想法是尝试XMLHttpRequest目的。我将发布 VBScript 代码,我认为在必要时将其转换为 JavaScript 并不难。

URL = "http://173.192.48.92/test.php"
Set http = CreateObject("Microsoft.XmlHttp")

http.open "GET", URL, False
http.send ""

If http.status <> 200 Then 'if not OK
WScript.Echo "Response status " & _
http.status & " - " & http.statusText
WScript.Quit 'exit the script
End If

WScript.Echo http.responseText

如果编码是问题那么你应该在最后一行得到一个错误。如果是这样,则删除此行并尝试使用 ADO Stream object ,即将其附加到上面的代码:

Set stream = CreateObject("ADODB.Stream")
With stream
.Open
.Type = 2 'text
.Position = 0
'.Charset = "utf-8"
.Charset = "latin1"
.WriteText http.responseText
.SaveToFile "output.txt", 2
.Close
End With

在我的测试中,它适用于字符集 UTF-8 和 Latin1,我希望这能解决问题。

好吧,如果这没有帮助,那么让我知道您遇到的那种错误。

关于windows - 如何使用 Windows 脚本下载字符编码不正确的网页?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15035599/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com