这个问题与这个问题有关:Character encoding Microsoft.XmlHttp in Vbscript,但有一点不同,国家字符在域名中,而不仅仅是参数。
任务是:从给定的 URL 下载页面。
我已经解决了通过 ADO 从 UTF8 编码文件中读取 UTF8 字符串到 VBScript 的问题。
但是现在当我尝试打开它时,MSXML2.ServerXMLHTTP 返回错误: URL 无效。
这是VBScript代码:
Set objStream = CreateObject("ADODB.Stream")
objStream.CharSet = "utf-8"
objStream.Open
objStream.LoadFromFile("fileWithURL.txt")
url = objStream.ReadText()
objStream.Close
Set XMLHttpReq = CreateObject("MSXML2.ServerXMLHTTP")
XMLHttpReq.Open "GET", url, False
XMLHttpReq.send
WEBPAGE = XMLHttpReq.responseText
如果您将hxxp://россия.рф/main/page5.html之类的内容放入 UTF8 编码的 fileWithURL.txt 中,则脚本将在与hxxp://google.com正常工作时引发错误。
解决方法是使用域名的 ascii 表示 - 但我还没有找到用于 vbscript 的 PunnyCode 编码器(除了Chillkat,这对我的任务来说是一种过度杀伤力)。
感谢您对主要问题或解决方法的帮助。