1. Уважаемые участники и гости, 19 октября codeby будет работать в режиме "Только чтение". Регистрация новых участников будет закрыта. 20 октября портал продолжит работу в прежнем режиме.

кодировки

Тема в разделе "Lotus - Программирование", создана пользователем D!m@n, 8 сен 2007.

Статус темы:
Закрыта.
  1. D!m@n

    D!m@n Гость

    Репутация:
    0
    Доброго времени суток!

    Есть код, который берет из инета содержимое веб-страницы и запихивает в поле текущего документа. Сама веб-страница в Win-1251.
    В результате в поле вместо русских букв - абракадабра.

    Провел эксперимент: если сохранить содержимое этого поля в файле с помощью NotesStream, используя кодировку Unicode, а потом открыть в браузере как Win-1251 - то появляются русские буквы :(

    О чем это говорит? И как привести получаемый контент к нормальному виду?

    Код прилагаю.

    Заранее спасибо!

    Код:
    	Dim uiw As New NotesUIWorkspace
    Dim uidoc As NotesUIDocument
    Dim thisdoc As NotesDocument
    Dim httpobj As Variant
    Dim url As String
    
    Set uidoc=uiw.CurrentDocument
    Set thisdoc=uidoc.Document
    
    url=thisdoc.URL(0)
    
    Set httpobj=CreateObject("winhttp.winhttprequest.5.1")
    
    Call httpobj.Open("GET", url, False)
    
    'это кодировка самой строки - урла (?)
    httpobj.Option(2) = "Windows-1251" ' WinHttpRequestOption_URLCodePage = 2 	
    
    Call httpobj.SetRequestHeader ("Accept-Language", "ru")
    httpobj.SetRequestHeader "Accept-Charset", "Windows-1251" 
    httpobj.setRequestHeader "Accept-Encoding", "gzip, deflate" 
    
    httpobj.setRequestHeader "Content-Language", "ru" 
    httpobj.setRequestHeader "Content-Charset", "Windows-1251" 
    httpobj.setRequestHeader "Content-Encoding", "gzip, deflate" 
    httpobj.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded; charset=Windows-1251" 
    
    httpobj.setRequestHeader "CACHE_CONTROL", "no-cache" 
    httpobj.setRequestHeader "CONNECTION", "Close" 
    
    Call httpobj.Send()
    
    Call thisdoc.ReplaceItemValue("receivedText", httpobj.ResponseText)
    
    Call uidoc.Refresh
    
    Set httpobj=Nothing
     
  2. D!m@n

    D!m@n Гость

    Репутация:
    0
    Еще одна странность: проблема возникает лишь при загрузке некоторых веб-страниц в Win-1251. При загрузке других страниц в той же кодировке - все норм.

    Проблему удалось кое-как коряво решить: если неправильно пришедшую страницу сохранить с помощью NotesStream в Win-1252, а открыть в Win-1251, то все заработает.

    Товарищи, подскажите, как бы ее решить поэлегантнее? И каковы могут причины этой фигни? :(

    Заранее спасибо!
     
Загрузка...
Похожие Темы - кодировки
  1. AleksP
    Ответов:
    0
    Просмотров:
    1.501
  2. xKlonx
    Ответов:
    6
    Просмотров:
    3.521
  3. Kizarek86
    Ответов:
    11
    Просмотров:
    16.703
Статус темы:
Закрыта.

Поделиться этой страницей