Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / ServerXMLHTTP Проблема с кодировкой / 9 сообщений из 9, страница 1 из 1
06.11.2007, 19:29
    #34920186
AvnAvnAvn
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ServerXMLHTTP Проблема с кодировкой
ContentType = "text/html; charset=windows-1251"
Dim urlExec
Dim objSrvHttp
Dim url
Dim objStream
Set objSrvHttp = CreateObject("MSXML2.ServerXMLHTTP.6.0")

Set objStream = CreateObject("ADODB.Stream")
urlExec="http://meteoinfo.ru/forecasts5000/russia/moscow-area"

Call objSrvHTTP.Open ("GET", urlExec, False)
objSrvHTTP.setRequestHeader "Content-Type", "text/html"
objSrvHTTP.setRequestHeader "charset", "Windows-1251"
objSrvHTTP.setRequestHeader "Content-Type", "text/html; charset=Windows-1251"
objSrvHTTP.send ""
If (200 <> objSrvHTTP.status) Then
Else
objStream.Type = 2 '1-adTypeBinary, 2-adTypeText
objStream.Charset = "Windows-1251"
objStream.Open
str = objSrvHTTP.responseText


Строка str содержит ?????? вместо русских букв. До последнего времени
все было нормально, что-то изменилось на сайте meteoinfo.ru
Как установить русскую кодировку?
...
Рейтинг: 0 / 0
07.11.2007, 17:15
    #34922944
Leshij
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ServerXMLHTTP Проблема с кодировкой
On Tue, 06 Nov 2007 19:29:17 +0300, AvnAvnAvn <nospam@sql.ru>; wrote:

> objSrvHTTP.setRequestHeader "Content-Type", "text/html"
> objSrvHTTP.setRequestHeader "charset", "Windows-1251"
> objSrvHTTP.setRequestHeader "Content-Type", "text/html;
> charset=Windows-1251"

Что это, доктор? Во-первых, Content-Type определяется одним хэдором,
который выглядит как третья строчка. А во-вторых, он указывает, в какой
кодировке передается тело запроса или ответа. Клиент выставляет этот
заголовок, только, если он отправляет данные на сервер (например, методом
POST). Клиент указывает, в какой кодировке сервер должен отправить ответ,
с помощью хэдера Accept-Charset (а не charset).
Если Accept-Charset не поможет, посмотри
(objSrvHTTP.getAllResponseHeaders() ), какой Content-Type отдает сервер.
--
Здесь у нас туманы и дожди, здесь у нас холодные рассветы,
Здесь на неизведанном пути ждут замысловатые сюжеты!
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
08.11.2007, 20:27
    #34926442
AvnAvnAvn
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ServerXMLHTTP Проблема с кодировкой
в предыдущем примере выполнил:
Call objSrvHTTP.Open ("POST", urlExec, False)
call objSrvHTTP.setRequestHeader ("Accept-Charset", "windows-1251")
Call objSrvHTTP.send ("")

WScript.Echo objSrvHTTP.getAllResponseHeaders() 'возвратил следующее:


Date: Thu, 08 Nov 2007 17:19:00 GMT
Server: Apache/2.0.54 (Fedora)
X-Powered-By: PHP/5.0.4
Set-Cookie: PHPSESSID=p6tqub3bo18hcoupcuuaevd4k6; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html

пробовал также
call objSrvHTTP.setRequestHeader ("Content-Type", "text/html; Accept-Charset=windows-1251")
или
call objSrvHTTP.setRequestHeader ("Content-Type", "text/html")
результат никак не изменился

Как получить правильгную кодировку?
...
Рейтинг: 0 / 0
13.11.2007, 06:17
    #34934003
AvnAvnAvn
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ServerXMLHTTP Проблема с кодировкой
HELP please!
...
Рейтинг: 0 / 0
13.11.2007, 22:15
    #34936785
Leshij
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ServerXMLHTTP Проблема с кодировкой
On Tue, 13 Nov 2007 06:17:51 +0300, AvnAvnAvn <nospam@sql.ru>; wrote:

> HELP please!
Сервер не возвращает кодировки в заголовках, ServerXMLHTTP предполагает,
что по умолчанию кодировка UTF-8. Печально :(
Обязательно использовать meteoinfo.ru? Наверняка можно найти сайт, к-ый
возвращает данные в xml. Если нужна не картинка с сайта, а сами данные, то
xml будет гораздо проще использовать.
--
Здесь у нас туманы и дожди, здесь у нас холодные рассветы,
Здесь на неизведанном пути ждут замысловатые сюжеты!
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
14.11.2007, 08:33
    #34937126
AvnAvnAvn
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ServerXMLHTTP Проблема с кодировкой
Из других источников информация закачивается (есть и вырезки из html, используется xml), информация с meteoinfo.ru важна для раздела "Официальный прогноз" - чтобы не вырезать ее вручную.
IE к примеру при снятом флажке автоопределения кодировки отображает страницу в указанной кодировке.
Неужели для ServerXMLHTTP никак нельзя указать нужную кодировку,
если WEB-сервер не возвращает указание о своей кодировке в заголовках?
...
Рейтинг: 0 / 0
09.01.2008, 07:35
    #35049088
AvnAvnAvn
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ServerXMLHTTP Проблема с кодировкой
http://meteoinfo.ru/forecasts5000/russia/moscow-area примерно с ноября стал отвечать на запрос нужной кодировки и возвращать нужную кодировку "text/html; charset=windows-1251"

Теперь точно такае-же та-же проблема с кодировкой на сайте http://www.gismeteo.ru/towns/27612.htm
для этого сайта WScript.Echo objSrvHTTP.getAllResponseHeaders() возвращает "text/html"


Это администраторы сайтов что-то забывают настроить?
...
Рейтинг: 0 / 0
16.01.2008, 06:30
    #35064199
AvnAvnAvn
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ServerXMLHTTP Проблема с кодировкой
Возможно ли как-то побороть ситуацию?
...
Рейтинг: 0 / 0
15.11.2008, 17:32
    #35656041
ZmeyT
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ServerXMLHTTP Проблема с кодировкой
Бился я тут на днях и пришел к такому решению.
Исходные данные:
Исходник в win-1251.
Необходимо передавать национальные символы от клиента на сервер через AJAX в url-запросе и через submit форм.
Тестовые браузеры : IE7, Opera8, FF3
В каждый вызов добавляется поле char_set_test="аБвГдЕёЖз"
соответственно в AJAX в url а в формах через hidden поле например
<input type=hidden name="char_set_test" value="аБвГдЕёЖз">.

На сервере после получениия элемента из GET отправляем его в след функцию, которая используя заранее описаное тестовое поле 'char_set_test' выбирает метод кодировки браузера и исправляет пришедший запрос соответственно.

function auto_translate( $s ) {
$char_set_test = "";
if(array_key_exists('char_set_test', $_GET)) {
$char_set_test = $_GET['char_set_test'];
}

if ( 'аБвГдЕёЖз' == $char_set_test ) { //input in 1251
return $s;
} else if( 'аБвГдЕёЖз' == iconv('UTF-8','CP1251',$char_set_test)) { //input in utf-8
return iconv('UTF-8', 'CP1251', $s);
} else if( 'аБвГдЕёЖз' == iconv('KOI-8','CP1251',$char_set_test)) { //input in
return iconv('KOI-8', 'CP1251', $s);
}
return $s;
}
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / ServerXMLHTTP Проблема с кодировкой / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]