• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

Http-запрос Дает Корявую Кодировку

  • Автор темы Дайнеко
  • Дата начала
Статус
Закрыто для дальнейших ответов.
Д

Дайнеко

Переделываю из 7-ки в 8-ку считывание курсов с сайта НБ.
В 7-ке пользовался ср-ми v7plus и все складно крутилось.

Родные команды 8-ки вообще не заработали - после ожидания возникало какое-то ругалово.
Код:
ДатаДляФайла = "2013-02-13";
Http = Новый HTTPСоединение("http://www.nbrb.by");
Http.Получить("statistics/Rates/RatesPrint.asp?fromDate="+ ДатаДляФайла, "D:\out.txt");

Нашел примеры:
Код:
	Http = ПолучитьCOMОбъект("", "Microsoft.XMLHTTP");
Http.Open("GET", "http://www.nbrb.by/statistics/Rates/RatesPrint.asp?fromDate="+ ДатаДляФайла, False);
Http.Send();
Если Http.Status = 200 Тогда
СтрПри = Http.ResponseText;
Иначе
Предупреждение("Не удалось связаться по адресу: "+ СтрПри, 10);
Возврат;
КонецЕсли;
Работает. Мне такой вариант нравится, что результат можно запихнуть в строку а не в файл.
Проблема:
Возвращаемая строка нормально отражает только латинские буквы. Вместо русских маленькие вертикальные черточки. При копировании через буфер обмена они вообще выпадают.
А как красиво было было в7-ке !:)

Вот начальный фрагмент html-странички:
<html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1251"><title>Национальный банк Республики Беларусь | курсы валют</title>
Ясно виден код 1251. Почему GET думает, что это другая кодовая?
Пробовал между OPEN и GET вставить:
Код:
	Http.SetRequestHeader("Accept-Charset", "Windows-1251");
не помогло.

Подскажите, кто знаком с вопросом или предложите другой COMОбъект. Только сейчас увидел, что его имя "XMLHTTP". Может мне нужен что-то вроде "TXTHTTP"?
 
V

Vladal

Я делал примерно так:

Код:
ТекстДок = Новый ТекстовыйДокумент;
ТекстДок.ДобавитьСтроку(Тело);
ТекстДок.Вывод = ИспользованиеВывода.Разрешить;
ТекстДок.Записать(ИмяФайла);

ТекстДок.Прочитать(ИмяФайла, "cp866");
Второй параметр описан в синтакс-помощнике, вот пример:
Поддерживаемые названия кодировок:
UTF-8
UTF-16
UTF-16BE
UTF-16LE
UTF-32
UTF-32BE
UTF-32LE
UTF16_PlatformEndian
UTF16_OppositeEndian
UTF32_PlatformEndian
UTF32_OppositeEndian
UTF-7
IMAP-mailbox-name
SCSU
BOCU-1
CESU-8
ISO-8859-1
US-ASCII
gb18030
IBM367
iso-8859-2
iso-8859-3
iso-8859-4
iso-8859-5
iso-8859-6
iso-8859-7
iso-8859-8
iso-8859-9
iso-8859-13
iso-8859-15
cp932
Shift_JIS
EUC-JP
cp33722
windows-950
Big5
cp950
Big5-HKSCS
cp1386
GBK
GB2312
GB_2312-80
cp964
cp949
cp949c
EUC-KR
ibm-971
KSC_5601
ibm-1363
windows-949
windows-874
cp874
ibm-1162
cp437
cp737
cp775
cp850
cp851
cp852
cp855
cp856
cp857
cp858
cp860
cp861
cp862
cp863
cp864
cp865
cp866
ibm-867
CP868
cp869
KOI8-R
ibm-901
ibm-902
cp922
KOI8-U
ibm-4909
windows-1250
windows-1251
windows-1252
windows-1253
windows-1254
windows-1255
windows-1256
windows-1257
windows-1258
macintosh
x-mac-greek
x-mac-cyrillic
x-mac-centraleurroman
x-mac-turkish
hp-roman8
Adobe-Standard-Encoding
cp1006
cp1098
cp1124
cp1125
ibm-1129
cp1131
ibm-1133
ISO-2022-JP
JIS_Encoding
ISO-2022-JP-2
ISO_2022,locale=ja,version=3
ISO_2022,locale=ja,version=4
ISO-2022-KR
ISO_2022,locale=ko,version=1
ISO-2022-CN
ISO-2022-CN-EXT
HZ-GB-2312
JIS_X0201
windows-57002
windows-57003
windows-57011
windows-57010
windows-57007
windows-57004
windows-57005
windows-57008
windows-57009
LMBCS-1
LMBCS-2
LMBCS-3
LMBCS-4
LMBCS-5
LMBCS-6
LMBCS-8
LMBCS-11
LMBCS-16
LMBCS-17
LMBCS-18
LMBCS-19
IBM037
ebcdic-de
ebcdic-dk
IBM278
IBM280
IBM284
IBM285
IBM290
IBM297
IBM420
IBM424
IBM500
ibm-803
IBM-Thai
IBM870
IBM871
cp875
IBM918
cp930
cp933
cp935
cp937
cp939
cp1025
IBM1026
IBM1047
cp1097
cp1112
cp1122
cp1123
ibm-1130
ibm-1132
ibm-1137
IBM01140
IBM01141
IBM01142
IBM01143
IBM01144
IBM01145
IBM01146
IBM01147
IBM01148
IBM01149
ibm-1153
ibm-1154
ibm-1155
ibm-1156
ibm-1157
ibm-1158
ibm-1160
ibm-1164
ibm-1364
ibm-1371
ibm-1388
ibm-1390
ibm-1399
ibm-5123
ibm-8482
ibm-16684
ibm-4899
ibm-4971
ebcdic-he
ebcdic-ar
ibm-37_P100-1995,swaplfnl
ibm-1047_P100-1995,swaplfnl
ibm-1140_P100-1997,swaplfnl
ibm-1142_P100-1997,swaplfnl
ibm-1143_P100-1997,swaplfnl
ibm-1144_P100-1997,swaplfnl
ibm-1145_P100-1997,swaplfnl
ibm-1146_P100-1997,swaplfnl
ibm-1147_P100-1997,swaplfnl
ibm-1148_P100-1997,swaplfnl
ibm-1149_P100-1997,swaplfnl
ibm-1153_P100-1999,swaplfnl
ibm-12712_P100-1998,swaplfnl
ibm-16804_X110-1999,swaplfnl
ebcdic-xml-us
 
Д

Дайнеко

Второй параметр описан в синтакс-помощнике, вот пример:
Спасибо за отклик. Но проблема оказалась гораздо глубже, чем незнание параметров у методов. ;)
Нет худа без добра - решил вопрос альтернативным подходом.
 
M

-master-

Что-то хотели сказать?
Вы бы лучше почитали чего, чтобы понять что такое Microsoft.XMLHTTP, оно всяко полезнее.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!