Кодировка в WinHttp.WinHttpRequest.5.1 #674147


#0 by Pandoch
Всех приветствую! Проблема с декодированием сообщения с сервера. Проверяю в fiddler - ответ с сервера верный (русские слова - нормальные русские слова), через этот объект тот же самый ответ сервера (именно русские слова) декодирует в кракозябры. вот код. Помогите понять в чем дело и как наладить кодировку. WinHttp = Новый COMОбъект("WinHttp.WinHttpRequest.5.1"); Запрос хранится в "Текст". Сам ответ хранится в WinHttp.ResponseText. И там уже неверно декодировано. Пробовала совершенно разные комбинации параметров в setRequestHeader и WinHttp.Option(2,"utf-8"); (utf-8 или windows-1251) - и без них - не помогало.
#1 by Тьма
Декодируй полученный текст
#2 by Pandoch
Не нашла подобной функции в 1с.
#3 by Pandoch
Каким образом можно декодировать?
#4 by 2mugik
янасколько знаю восьмерка только в Юникоде работает.
#5 by Тьма
Ты неправильно знаешь. Записать с одно кодировкой, прочитать с другой. Например.
#6 by Тьма
+Если кодировка в заголовке ХМЛ-я и в текстовых полях ХМЛ-я отличается, то работать с ним можно только как с текстовым файлом.
#7 by Serginio1
#8 by Jaap Vduul
Получить ResponseBody вместо ResponseText, записать в файл, прочитать в нужной кодировке.
#9 by 2mugik
Ну хз когда отправлял текст на сайт и просили в Виндоуз1251. Нифига  не получалось. Хоть сохрани сначала в текст с нужной кодировкой хоть что. Передача из 1С все равно шла в юникоде. Выкрутились потоковой двоичной передачей.
#10 by Pandoch
в заголовке XML кодировка utf-8. но пробовала менять  и на windows-1251. В обоих случаях неверная декодировка с сервера. Я так понимаю что-то  с самим объектом встроенным, т.к. в фидлере на тот же самый запрос - приходит адекватный ответ.
#11 by Serginio1
ЧтениеТекста
#12 by 2mugik
В какой кодировке сервер ответ посылает?
#13 by Pandoch
- в utf-8
#14 by Serginio1
#15 by Torquader
В семёрке я делал перекодировку через объект MSScriptControl и код на VbScript, который может прочитать строку побайтово. В восьмёрке можно попробовать получать код символа и по нему анализировать, что там будет (код символа возвращает сразу два байта).
#16 by sttt
попробуй так: или смотри в СП по: КодировкаXML (XMLEncoding) Использование: Только чтение. Описание: Тип: Строка. Кодировка исходного документа XML Содержит значение атрибута encoding объявления XML. Если атрибут не указан или объявление не прочитано (отсутствует), то будет возвращена кодировка UTF-8. Доступность: Тонкий клиент, сервер, толстый клиент, внешнее соединение. Примечание: Поддерживаемые коды кодировок (с учетом правил : UTF-8
#17 by Torquader
Ещё есть объект ServerXmlHttpRequest - он более новый, и рекомендуется использовать вместо HttpRequest.
#18 by Pandoch
- с файла считывает тоже самое, пробовала.  кодировку XML задавала сама, при формировании текста запроса. Там дело не в ответе с сервера - с ним все с порядке, проверяла в фидлере. именно с объектом чтото, это он неверно перекодирует верный ответ с сервера - попробую использовать этот объект
#19 by Pandoch
- Спасибо ОГРОМНОЕ! С этим объектом заработало
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С