Этот вопрос связан с этим: Кодировка символов Microsoft.XmlHttp в Vbscript, но отличается в одном, национальные символы есть в имени домена, а не только аргументы.
Задача: скачать страницу с заданного URL.
Я уже решил проблему передачи строки UTF8 в VBScript, прочитав ее из файла с кодировкой UTF8 через ADO.
Но теперь, когда я пытаюсь открыть его, 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 в файл с кодировкой UTF8WithURL.txt, скрипт выдаст ошибку, при этом нормально работая с hxxp://google .com.
Обходной путь заключается в использовании ASCII-представления доменного имени, но я еще не нашел кодировщик PunnyCode для vbscript (кроме Chillkat, что является излишним для моей задачи).
Будем признательны за вашу помощь в решении основной проблемы или ее обходном пути.
IServerXMLHttpRequest
впервые был выпущен как часть MSXML 3.0, так что мы говорим 15 лет назад или около того, он никогда не предназначался для работы с IRI, только с URI, не говоря уже о IRI не был определен до 2005 года. - person user692942   schedule 25.08.2016