Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 1017

 
подскажите пожалуйста имеются вот такие данные <td colspan=\"8\" class=\"theDay\">\u0421\u0440\u0435\u0434\u0430, \u0410\u043f\u0440\u0435\u043b\u044c 20, 2016<\/td>\n  в формате UTF-8 

я правильно понимаю что что бы получить из них русский язык нужно перевести в ANSI то есть в CP_ACP

делаю это так  string ttt =CharArrayToString(RESULT,0,CP_ACP); и ничего не меняется только данные получаются в переменной string
сохранение в файл под CP_ACP тоже не даёт результат.
100 % я что то делаю не так . онлайн декодер правильно переводит . итог такой: heDay\">Среда, Апрель 20, 2016<\/td>\n  (ещё при перекодировании из UTF-8 используется пост фильтр uurlencoded) 
 ВОПРОС как это сделать на MQL?
 
Money_Maker:
подскажите пожалуйста имеются вот такие данные <td colspan=\"8\" class=\"theDay\">\u0421\u0440\u0435\u0434\u0430, \u0410\u043f\u0440\u0435\u043b\u044c 20, 2016<\/td>\n  в формате UTF-8 

я правильно понимаю что что бы получить из них русский язык нужно перевести в ANSI то есть в CP_ACP ? 

делаю это так  string ttt =CharArrayToString(RESULT,0,CP_ACP); и ничего не меняется только данные получаются в переменной string
сохранение в файл под CP_ACP тоже не даёт результат.
100 % я что то делаю не так . онлайн декодер правильно переводит . итог такой: heDay\">Среда, Апрель 20, 2016<\/td>\n 
 ВОПРОС как это сделать на MQL?
Как узнаете - напишите. Есть похожая задачка. 
 
Money_Maker:
подскажите пожалуйста имеются вот такие данные <td colspan=\"8\" class=\"theDay\">\u0421\u0440\u0435\u0434\u0430, \u0410\u043f\u0440\u0435\u043b\u044c 20, 2016<\/td>\n  в формате UTF-8 

я правильно понимаю что что бы получить из них русский язык нужно перевести в ANSI то есть в CP_ACP ? 

делаю это так  string ttt =CharArrayToString(RESULT,0,CP_ACP); и ничего не меняется только данные получаются в переменной string
сохранение в файл под CP_ACP тоже не даёт результат.
100 % я что то делаю не так . онлайн декодер правильно переводит . итог такой: heDay\">Среда, Апрель 20, 2016<\/td>\n  (ещё при перекодировании из UTF-8 используется пост фильтр uurlencoded) 
 ВОПРОС как это сделать на MQL?
https://forum.mql4.com/ru/67441
 
Print(CharArrayToString(RESULT));
 перекодировки не происходит... ( я уже так пробывал .. я вроде что то похожее нашёл ...  https://forum.mql4.com/ru/18476

#import "kernel32.dll"
   int WideCharToMultiByte(int CodePage, int dwFlags, int &lpWideCharStr[], int cchWideChar, string lpMultiByteStr, int cbMultiByte, 
                           int lpDefaultChar, int lpUsedDefaultChar);
#import

пока правда не сработало ... но похоже на то что нужно, или не то? 
 
подскажите пожалуйста как можно программно перекодировать данные как на картинке (кадабры в буквы русские)?  Куда копать  в каком направление(?


 
 
Money_Maker:
подскажите пожалуйста как можно программно перекодировать данные как на картинке (кадабры в буквы русские)?  Куда копать  в каком направление(?


 
Если не ошибаюсь, то это base64, его программно можно перекодировать только в PHP, или писать свою функцию на MQ
 
спасибо, уже разные варианты думал от 
1 скачивание с учётом кодировки 
2 скачивание страницы после запроса в брозере то она нормальная отображается 
3 разные функции перекодировать из WinDLL или C++ 
4 сейчас пришёл что я подберу для каждой буквы код и буду по нему  раскодировать (то есть собственная функция)


хорошо а как написать в коде MQL например вот это   "\u0430"

выдаёт предупреждение'u' - unrecognized character escape sequence

 
Money_Maker:
спасибо, уже разные варианты думал от 
1 скачивание с учётом кодировки 
2 скачивание страницы после запроса в брозере то она нормальная отображается 
3 разные функции перекодировать из WinDLL или C++ 
4 сейчас пришёл что я подберу для каждой буквы код и буду по нему  раскодировать (то есть собственная функция)


хорошо а как написать в коде MQL например вот это   "\u0430"

выдаёт предупреждение'u' - unrecognized character escape sequence

Вот на PHP, по её принципу делаете на MQ

function conv($str)
{
$uot = '';
$unicodePoints = array( '\u0410','\u0411','\u0412','\u0413',
'\u0414','\u0415','\u0416','\u0417',
'\u0418','\u0419','\u041A','\u041B',
'\u041C','\u041D','\u041E','\u041F',
'\u0420','\u0421','\u0422','\u0423',
'\u0424','\u0425','\u0426','\u0427',
'\u0428','\u0429','\u042A','\u042B',
'\u042C','\u042D','\u042E','\u042F',
'\u0430','\u0431','\u0432','\u0433',
'\u0434','\u0435','\u0436','\u0437',
'\u0438','\u0439','\u043A','\u043B',
'\u043C','\u043D','\u043E','\u043F',
'\u0440','\u0441','\u0442','\u0443',
'\u0444','\u0445','\u0446','\u0447',
'\u0448','\u0449','\u044A','\u044B',
'\u044C','\u044D','\u044E','\u044F');
$hexView = array(   'd090','d091','d092','d093',
'd094','d095','d096','d097',
'd098','d099','d09a','d09b',
'd09c','d09d','d09e','d09f',
'd0a0','d0a1','d0a2','d0a3',
'd0a4','d0a5','d0a6','d0a7',
'd0a8','d0a9','d0aa','d0ab',
'd0ac','d0ad','d0ae','d0af',
'd0b0','d0b1','d0b2','d0b3',
'd0b4','d0b5','d0b6','d0b7',
'd0b8','d0b9','d0ba','d0bb',
'd0bc','d0bd','d0be','d0bf',
'd180','d181','d182','d183',
'd184','d185','d186','d187',
'd188','d189','d18a','d18b',
'd18c','d18d','d18e','d18f' );
for($i=0; $i < strlen( $str ); $i++)
{
if(bin2hex($str{$i}) >= 'd0' && bin2hex($str{$i}) <= 'd1')
{
$uot .= bin2hex($str{$i}).bin2hex($str{$i+1});
$i++;
}
elseif(bin2hex($str{$i}) <= '7e')
{
$uot .= '\u00'.bin2hex($str{$i});
}
else $uot .= htmlentities($str{$i},ENT_QUOTES,'UTF-8');
}
return str_replace($hexView,$unicodePoints, $uot);
}

 

Смысл в том, что строку разбиваете на символы и делаете посимвольную замену на нужный символ при совпадении с массива.

 
Trader76:

Вот на PHP, по её принципу делаете на MQ

 

Смысл в том, что строку разбиваете на символы и делаете посимвольную замену на нужный символ при совпадении с массива.

спасибо большое так будет быстрее, я тоже поэтому принципу решил "липить" особое спасибо за коды символов теперь их искать не надо будет.
 
Money_Maker:
спасибо большое так будет быстрее, я тоже поэтому принципу решил "липить" особое спасибо за коды символов теперь их искать не надо будет.

 StringGetChar()

StringGetCharacter()

Или это не то?