Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 1017

 
Pourriez-vous me communiquer les données<td colspan="8\" class=\"theDay\">\u0421\u0440\u0435\u0434\u0430, \u0410\u043f\u0440\u0435\u043b\u044c 20, 2016</td>\n format UTF-8

Je comprends bien que le russe doit être converti en ANSI, c'est-à-dire en CP_ACP?

Je le fais comme ceci string ttt =CharrayToString(RESULT,0,CP_ACP) ; Rien ne change, juste les données sont stockées dans la variable string
L'enregistrement dans un fichier sous CP_ACP ne fonctionne pas non plus.
Je fais quelque chose de mal. La sortie est heDay\">mercredi 20 avril 2016<\/td>\n (j'ai également utilisé le filtre post uurlencoded lors de la conversion depuis UTF-8).
LA QUESTION est de savoir comment le faire en MQL ?
 
Money_Maker:
Pourriez-vous me communiquer les données<td colspan="8\" class=\"theDay\">\u0421\u0440\u0435\u0434\u0430, \u0410\u043f\u0440\u0435\u043b\u044c 20, 2016</td>\n format UTF-8

Je comprends bien que le russe doit être converti en ANSI, c'est-à-dire en CP_ACP ?

Je le fais comme ceci string ttt =CharrayToString(RESULT,0,CP_ACP) ; Rien ne change, juste les données sont stockées dans la variable string
L'enregistrement dans un fichier sous CP_ACP ne fonctionne pas non plus.
Je fais quelque chose de mal. Le décodeur en ligne traduit correctement. Le résultat est : heDay\">mercredi 20 avril 2016<\/td>\n
La question est de savoir comment le faire en MQL ?
Comment le savez-vous ? Écrivez. J'ai un problème similaire.
 
Money_Maker:
Pourriez-vous me communiquer les données<td colspan="8\" class=\"theDay\">\u0421\u0440\u0435\u0434\u0430, \u0410\u043f\u0440\u0435\u043b\u044c 20, 2016</td>\n format UTF-8

Je comprends bien que le russe doit être converti en ANSI, c'est-à-dire en CP_ACP ?

Je le fais comme ceci string ttt =CharrayToString(RESULT,0,CP_ACP) ; Rien ne change, juste les données sont stockées dans la variable string
L'enregistrement dans un fichier sous CP_ACP ne fonctionne pas non plus.
Je fais quelque chose de mal. La sortie est heDay\">mercredi 20 avril 2016<\/td>\n (j'ai également utilisé le filtre post uurlencoded lors de la conversion depuis UTF-8).
QUESTION : comment le faire en MQL ?
https://forum.mql4.com/ru/67441
 
eevviill:
https://forum.mql4.com/ru/67441
Print(CharArrayToString(RESULT));
aucun recodage n'a lieu... ( J'ai déjà essayé... Je pense avoir trouvé quelque chose de similaire...) 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

Ça n'a pas encore marché... mais il semble que ce soit le bon, ou est-ce faux ?
 
Pouvez-vous me dire comment convertir les données comme indiqué dans l'image (cadabres en lettres russes) ? Où creuser et dans quelle direction( ?


 
Money_Maker:
Pouvez-vous me dire comment convertir les données comme indiqué dans l'image (cadabres en lettres russes) ? Où creuser et dans quelle direction( ?



Si je ne me trompe pas, il s'agit de base64, il peut être recodé par programme uniquement en PHP, ou écrire votre propre fonction dans MQ.
 
Merci, j'ai déjà pensé à différentes options à partir de
1 téléchargement tenant compte de l'encodage
2 télécharger la page après la demande dans le navigateur, elle s'affiche bien
3 fonctions différentes converties de WinDLL ou C++
4 viennent maintenant que je vais chercher pour chaque lettre un code et l'utiliser pour décoder (c'est à dire leur propre fonction)


OK, comment puis-je écrire ce "\u0430" dans le code MQL ?

Je reçois un avertissement 'u' - séquence d'échappement de caractères non reconnus

 
Money_Maker:
Merci, j'ai déjà pensé à différentes options à partir de
1 téléchargement tenant compte de l'encodage
2 téléchargez la page après la demande dans le navigateur, elle s'affichera bien.
3 fonctions différentes pour convertir de WinDLL ou C++.
4 viennent maintenant que je vais chercher pour chaque lettre un code et l'utiliser pour décoder (c'est à dire leur propre fonction)


OK, comment puis-je écrire ce "\u0430" dans le code MQL ?

J'obtiens un avertissement 'u' - séquence d'échappement de caractères non reconnus.

Ici en PHP, suivant son principe de le faire en 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);
}

L'idée est de décomposer la chaîne en caractères et d'effectuer un remplacement caractère par caractère avec le bon caractère lorsqu'il correspond au tableau.

 
Trader76:

Ici en PHP, suivant son principe de le faire en MQ

L'idée est de décomposer la chaîne en caractères et de remplacer chaque caractère par le caractère correct lorsqu'il correspond au tableau.

merci beaucoup ce sera plus rapide, j'ai aussi si le principe a décidé de "lippy" merci spécial pour les codes de caractères maintenant ils ne devront pas les chercher.
 
Money_Maker:
Merci beaucoup ce sera plus rapide, c'est pourquoi j'ai aussi décidé de "lécher" le principe merci spécial pour les codes de caractères maintenant je n'aurai pas à les chercher.

StringGetChar()

StringGetChar()

Ou c'est faux ?

Raison: