Страницы: 1
RSS
MSXML.XMLHTTPRequest Проблема с кодировкой
 
Добрый день, уважаемые форумчане  
 
Воспользовался указанным на сайте приёмом по нахождению курса доллара  
http://planetaexcel.ru/tip.php?aid=91  
 
Переделал его под свои нужды.  
В макросе создаётся объект MSXML2.XMLHTTP, в строковую переменную заливается исходный код веб-страницы, а потом в строке находится нужная информация.  
 
Но возникла одна проблема: Кириллица в этом объекте не отображается и найти в строке данные на основе кириллических символов нельзя.  
 
Что можно сделать?
 
Выкладывайте свой код - посмотрим, что можно исправить.  
 
Или воспользуйтесь этим решением: http://excelvba.ru/code/CurrencyRate  
(там вроде нет проблем с кириллицей)
 
У сайта ЦБ давно есть xml.  
http://www.cbr.ru/scripts/Root.asp?Prtid=SXML  
 
Данный способ устарел, причем давно.
 
Код у меня такой же, как и в примере:  
Set oHttp = CreateObject("MSXML2.XMLHTTP.6.0")  
   If Err.Number <> 0 Then  
       Set oHttp = CreateObject("MSXML2.XMLHTTPRequest")  
   End If  
   On Error GoTo 0  
   If oHttp Is Nothing Then  
       Exit Function  
   End If  
     
   oHttp.Open "GET", sURI, False  
   oHttp.Send  
   htmlcode = oHttp.responseText  
 
В строковой переменнной htmlcode сохраняется исходный код веб страницы, но кириллицу он не отображает, хотя если смотреть исходный код через браузер, то там всё ок и кодировка win-1251.    
Функция oHttp.getResponseHeader("Content-Type") выдаёт "text/html" без указания кодировки.  
Вот я и не знаю в какую сторону копать:  
1) то ли нужно послать заголовок с явным указанием кодировки (нашёл на форумах, что в php это делает функция header, а в vba не знаю)  
2) то ли менять кодировку строки htmlcode. Правда тоже с этим не преуспел (((  
 
P.S. Мне нужны не курсы валют, а другие данные не с сайта ЦБ, а с иного, где нет XML.
 
Если код выполняется из Excel, то не проще ли использовать веб-запрос?  
Пример есть здесь: http://excelvba.ru/programmes/MoviesSearch  
 
 
Или вот это попробуйте:  
http://excelvba.ru/code/GetHTTPResponse  
http://excelvba.ru/code/GetWebPageText
Страницы: 1
Читают тему
Наверх