Bienvenue aux nouveaux arrivants sur FantasPic !
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
Modérateur : Jérémy
Envoi D'un E-mail par GSM
-
francois77
Passioné- Messages : 298
- Enregistré en : avril 2022
Envoi D'un E-mail par GSM
Bonjour,
Généralement le port 25 est bloqué par le FAI pour éviter qu'un ordinateur piraté envoie des pelletées de spams. Mais comme tu envoies ça au serveur SMTP de ton FAI Orange (je suppose), il laisse passer.
Pour les caractères accentués je n'ai pas investigué, je regarderai. Le mail à l'origine était envoyé en ASCII donc 128 caractères. Ensuite on a incorporé les jeux de caractères étendus, UTF-8, Unicode, HTML, etc. Je sais pas si avec ce module on peut le faire.
Tu peux joindre un fichier au mail avec la commande AT+SMTPFILE, je ne l'ai pas testée non plus.
https://www.eagle-robotics.com/blog/15- ... -et-sim900
Généralement le port 25 est bloqué par le FAI pour éviter qu'un ordinateur piraté envoie des pelletées de spams. Mais comme tu envoies ça au serveur SMTP de ton FAI Orange (je suppose), il laisse passer.
Pour les caractères accentués je n'ai pas investigué, je regarderai. Le mail à l'origine était envoyé en ASCII donc 128 caractères. Ensuite on a incorporé les jeux de caractères étendus, UTF-8, Unicode, HTML, etc. Je sais pas si avec ce module on peut le faire.
Tu peux joindre un fichier au mail avec la commande AT+SMTPFILE, je ne l'ai pas testée non plus.
https://www.eagle-robotics.com/blog/15- ... -et-sim900
Envoi D'un E-mail par GSM
Envoi D'un E-mail par GSM
-
Jérémy
Administrateur du site- Messages : 2688
- Âge : 43
- Enregistré en : juillet 2015
- Localisation : Dans le sud
- Contact :
satinas a écrit :Source du message Regarde dans la doc la commande AT+SMTPCS -> Set the Email Charset
Ah oui ... celui la je l'ai loupé !
je pense que la solution se trouve ici merci pour cette piste . Je fais des tests dés que j'ai finis de me bagarrer avec la création de mon coprs de message et mes strcat !!!
mon buffer déborde !!! lol.
Envoi D'un E-mail par GSM
Envoi D'un E-mail par GSM
Envoi D'un E-mail par GSM
Bonjour Jérémy, et tout le forum,
Hum... à une époque où le système d'exploitation était Dos on a instauré un système permettant de charger différent type de caractère clavier en 8 bits (255 caractères)
Les caractères était chargé au démarrage du système d'exploitation, et on paramétré le code clavier dans un fichier nommé Config.sys et Autoexect.bat
Mais à l'arrivé de Windows, tout à était supprimé, car maintenant il suffit de changer un type de police, pour avoir un code clavier différent.
Il est fort probable que ton Module GSM SIM800L soit en code ASCII de Dos, voici en image tous les codes de Dos
Code ASCII de Dos en français
Pour remédier à ton problème, 2 solutions possibles, soit tu changes ta police dans le logiciel de réception avec une compatibilité de ton module, soit tu contrôles et change si nécessaire le code du caractère que tu envoies pour le rendre compatible pour ton logiciel de réception.
Ce qui implique de faire un tableau ou tu stockeras les caractères qui ne sont pas compatible pour être changé par d'autre.
Si tu veux faire une petite expérience, et pour voir si le é (code 130 sous dos) est bien pris en compte
Tu appuis sur la touche : Alt puis, toujours sans relâché la touche Alt tu composes le numéros 130 avec les touches de droit de ton clavier, puis tu relâches la touches Alt, tu devrais voir apparaître le é
Il est possible que cela fonctionne, mais que le code soit différent, pour être sur regarde avec un éditeur hexadécimal.
Pour un é tu dois avoir en hexadécimal le numéro 82
Pas facile à expliquer tout ça.
A+

Les caractères était chargé au démarrage du système d'exploitation, et on paramétré le code clavier dans un fichier nommé Config.sys et Autoexect.bat
Mais à l'arrivé de Windows, tout à était supprimé, car maintenant il suffit de changer un type de police, pour avoir un code clavier différent.
Il est fort probable que ton Module GSM SIM800L soit en code ASCII de Dos, voici en image tous les codes de Dos
Code ASCII de Dos en français

Pour remédier à ton problème, 2 solutions possibles, soit tu changes ta police dans le logiciel de réception avec une compatibilité de ton module, soit tu contrôles et change si nécessaire le code du caractère que tu envoies pour le rendre compatible pour ton logiciel de réception.
Ce qui implique de faire un tableau ou tu stockeras les caractères qui ne sont pas compatible pour être changé par d'autre.
Si tu veux faire une petite expérience, et pour voir si le é (code 130 sous dos) est bien pris en compte
Tu appuis sur la touche : Alt puis, toujours sans relâché la touche Alt tu composes le numéros 130 avec les touches de droit de ton clavier, puis tu relâches la touches Alt, tu devrais voir apparaître le é
Il est possible que cela fonctionne, mais que le code soit différent, pour être sur regarde avec un éditeur hexadécimal.
Pour un é tu dois avoir en hexadécimal le numéro 82


Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Envoi D'un E-mail par GSM
-
Jérémy
Administrateur du site- Messages : 2688
- Âge : 43
- Enregistré en : juillet 2015
- Localisation : Dans le sud
- Contact :
Re,
Je viens de tester la fonction AT+SMTPCS="UTF-8"
Alors c'était laborieus mais j'ai réussi a afficher les accents.
Cependant c'est une vrai chemin de croix.
Par exemple le "é" en UTF-8 c'est 0xC3A9 contrairement à l'ACSII avancé qui 0xE9
Du coup je devrais transformer une chaine de caractrere en Hexa UTF-8 sur 2 octets.
Bref je laisse tomber les accents !
Concernant le module SIM800L , c'est vraiment pas mal du tout.
C'est plutôt galère à s'assurer d'un bon envoi car il faut lire et interpréter les réponses au questions qu'on lui pose.
Si on se contente d’écrire les lignes brut, ca peut fonctionner avec un peu de chance, mais souvent ca peut louper !
Du coup pour traiter les réponses mon interruptions uart devient uen vrai usine a gaz, mais ca fonctionne
Je viens de tester la fonction AT+SMTPCS="UTF-8"
Alors c'était laborieus mais j'ai réussi a afficher les accents.
Cependant c'est une vrai chemin de croix.
Par exemple le "é" en UTF-8 c'est 0xC3A9 contrairement à l'ACSII avancé qui 0xE9
Du coup je devrais transformer une chaine de caractrere en Hexa UTF-8 sur 2 octets.
Bref je laisse tomber les accents !
Concernant le module SIM800L , c'est vraiment pas mal du tout.
C'est plutôt galère à s'assurer d'un bon envoi car il faut lire et interpréter les réponses au questions qu'on lui pose.
Si on se contente d’écrire les lignes brut, ca peut fonctionner avec un peu de chance, mais souvent ca peut louper !
Du coup pour traiter les réponses mon interruptions uart devient uen vrai usine a gaz, mais ca fonctionne
Envoi D'un E-mail par GSM
Bonjour tout le forum,
16 bits, c'est bizare...surement une police Windows à connaître.
A+
Jérémy a écrit :Source du message Du coup je devrais transformer une chaine de caractrere en Hexa UTF-8 sur 2 octets


Envoi D'un E-mail par GSM
Bonsoir/Bonjour,
Les textes étaient stockés au départ en encodage US-ASCII 7 bits sur 128 caractères, un seul octet par caractère. Puis on a créé les encodages 8 bits étendus divers et variés sur 256 caractères, toujours un seul octet.
Le DOS français utilisait l'encodage 8 bits IBM 850.
Windows utilise par défaut l'ISO-1252-1 dérivé de l'ISO-8859-1 (à tester avec AT+SMTPCS ?), mais il utilise aussi l'Unicode.
L'Unicode est un format multi-langue universel, qui peut permettre d'identifier de façon unique tous les caractères utilisés sur la planète, en attendant ceux des martiens. Pour stocker le texte l'Unicode utilise divers encodages UTF-8, UTF-16, UTF-32.
L'UTF-8 est concis car il stocke un caractère sur 1 à 4 octets. Il recouvre l'US-ASCII 7 bits sur 1 seul octet, mais à partir de 128 on passe à 2 octets ou plus, le bit 7 à 1 indiquant qu'il y aura plusieurs octets.
Pour passer un texte Windows vers un stockage UTF-8, je fais avec le logiciel Notepad++ -> menu Encoding/Convert To UTF-8 puis puis File/Save
Rappel pour enlever les codes 9 de tabulation d'un fichier texte provoquant des décalages sur le site, car les largeurs de tabulation diffèrent, toujours avec Notepad++ -> menu Edit/Blank Operations/TAB To Space puis File/Save
L'idéal serait de travailler directement en UTF-8, c'est ce que fait Qt dans ses dernières versions. Avec MPLABX on peut sélectionner UTF-8 lors de la création d'un projet.
C'est à la mode, j'ai demandé à ChatGPT :
"Conversion chaîne ISO-1252 vers UTF-8 en langage C ?".
Il parle d'une bibliothèque iconv qui n'a pas l'air d'exister dans MikroC et xc8.
"Conversion chaîne ISO-1252 vers UTF-8 en langage MikroC ?"
"Conversion chaîne ISO-1252 vers UTF-8 en langage xc8 ?"
"ChatGPT Jan 9 Version. Free Research Preview", qui vous souhaite un bon dimanche, plus besoin de se casser la tête, enfin si cela marche :)
Les textes étaient stockés au départ en encodage US-ASCII 7 bits sur 128 caractères, un seul octet par caractère. Puis on a créé les encodages 8 bits étendus divers et variés sur 256 caractères, toujours un seul octet.
Le DOS français utilisait l'encodage 8 bits IBM 850.
Windows utilise par défaut l'ISO-1252-1 dérivé de l'ISO-8859-1 (à tester avec AT+SMTPCS ?), mais il utilise aussi l'Unicode.
L'Unicode est un format multi-langue universel, qui peut permettre d'identifier de façon unique tous les caractères utilisés sur la planète, en attendant ceux des martiens. Pour stocker le texte l'Unicode utilise divers encodages UTF-8, UTF-16, UTF-32.
L'UTF-8 est concis car il stocke un caractère sur 1 à 4 octets. Il recouvre l'US-ASCII 7 bits sur 1 seul octet, mais à partir de 128 on passe à 2 octets ou plus, le bit 7 à 1 indiquant qu'il y aura plusieurs octets.
Pour passer un texte Windows vers un stockage UTF-8, je fais avec le logiciel Notepad++ -> menu Encoding/Convert To UTF-8 puis puis File/Save
Rappel pour enlever les codes 9 de tabulation d'un fichier texte provoquant des décalages sur le site, car les largeurs de tabulation diffèrent, toujours avec Notepad++ -> menu Edit/Blank Operations/TAB To Space puis File/Save
L'idéal serait de travailler directement en UTF-8, c'est ce que fait Qt dans ses dernières versions. Avec MPLABX on peut sélectionner UTF-8 lors de la création d'un projet.
C'est à la mode, j'ai demandé à ChatGPT :
"Conversion chaîne ISO-1252 vers UTF-8 en langage C ?".
Il parle d'une bibliothèque iconv qui n'a pas l'air d'exister dans MikroC et xc8.
"Conversion chaîne ISO-1252 vers UTF-8 en langage MikroC ?"
Code : Tout sélectionner
char str[] = "Chaîne encodée en ISO-1252";
char utf8_str[100];
UTF8_Encode(utf8_str, str);
printf("%s", utf8_str);
"Conversion chaîne ISO-1252 vers UTF-8 en langage xc8 ?"
Code : Tout sélectionner
char str[] = "Chaîne encodée en ISO-1252";
char utf8_str[100];
__builtin_convert_encoding(utf8_str, str, _ENC_ISO_8859_1, _ENC_UTF8);
printf("%s", utf8_str);
"ChatGPT Jan 9 Version. Free Research Preview", qui vous souhaite un bon dimanche, plus besoin de se casser la tête, enfin si cela marche :)
Retourner vers « Généralités sur les PICs »
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité