В запросе появляются дополнительные непонятные ���

 

Здравствуйте

Ситуация следующая. Есть мультивалютный/мультитайминговый советник, который работает по очень простому алгоритму и должен при каждой проверке по таймеру отсылать через вебреквест данные. Однако браузер при заходе на рест сервис, на который данные отправляются, выдает ошибку. Если открыть исходный код в браузере, то видно, что после каждого запроса вот такие символы идут ���

из-за них, возможно, браузер и ругается. Помогите, пожалуйста, решить данную проблему 

 Код запроса

aQuery = "Symbol="+aSymbol(x)+"&TimeFrame="+tfs(y)+"&Direction="+"FLAT"+"&Price="+ DoubleToString(iOpen(aSymbol(x),tf(y), 0), 5)+"&Strategy="+"BWSignal";

StringToCharArray (aQuery,data, 0,WHOLE_ARRAY, CP_UTF8);

WebRequest("POST", URL, NULL, NULL, 5000, data,0, result, headers);

Alert (CharArrayToString (data, 0, WHOLE_ARRAY, CP_UTF8));

               

 Все остальные функции работают корректно, здесь - не понимаю, по какой причине не работает. Через алерт выводил Alert (CharArrayToString (data, 0, WHOLE_ARRAY, CP_UTF8)); вся строчка выходит как надо - Symbol=NZDUSD&TimeFrame=MN1&Direction=FLAT&Price=0.70803&Strategy=BWSignal

 
Эдуард Климуш:

Здравствуйте

Ситуация следующая. Есть мультивалютный/мультитайминговый советник, который работает по очень простому алгоритму и должен при каждой проверке по таймеру отсылать через вебреквест данные. Однако браузер при заходе на рест сервис, на который данные отправляются, выдает ошибку. Если открыть исходный код в браузере, то видно, что после каждого запроса вот такие символы идут ���

из-за них, возможно, браузер и ругается. Помогите, пожалуйста, решить данную проблему 

 Код запроса

aQuery = "Symbol="+aSymbol(x)+"&TimeFrame="+tfs(y)+"&Direction="+"FLAT"+"&Price="+ DoubleToString(iOpen(aSymbol(x),tf(y), 0), 5)+"&Strategy="+"BWSignal";

StringToCharArray (aQuery,data, 0,WHOLE_ARRAY, CP_UTF8);

WebRequest("POST", URL, NULL, NULL, 5000, data,0, result, headers);

Alert (CharArrayToString (data, 0, WHOLE_ARRAY, CP_UTF8));

               

 Все остальные функции работают корректно, здесь - не понимаю, по какой причине не работает. Через алерт выводил Alert (CharArrayToString (data, 0, WHOLE_ARRAY, CP_UTF8)); вся строчка выходит как надо - Symbol=NZDUSD&TimeFrame=MN1&Direction=FLAT&Price=0.70803&Strategy=BWSignal

Может кодировка не та?
 

Сейчас посмотрел через json вьювер - показывает, что в конце каждого (кроме первого) элемента (айдишника) идет \\u0000

В некоторых места - один раз, в некоторых я замечал по три - \\u0000\\u0000\\u0000
Из-за этого браузер, собственно, как я понимаю, и не хочет распознавать xml и пишет 

This page contains the following errors:

error on line 1 at column 463: xmlParseCharRef: invalid xmlChar value 0

Below is a rendering of the page up to the first error.

 В общем, помогите, пожалуйста, разобраться, где проблема

 
Evgeny Belyaev:
Может кодировка не та?
Нет, тут дело не в кодировке - как я понял, данная штука применима только ко флету (т.е. сигнал покупать и продавать - нормально отрабатывается, а  вот сигнал флет - ни в какую. Постоянно эти нули в конце.
 
Что-то непонятно, зачем открывать исходный код в браузере?
 

...

StringToCharArray (aQuery,data, 0,WHOLE_ARRAY, StringLen(aQuery),CP_UTF8);              

 

 а так пробовали?

Причина обращения: