Bonjour,
J'ai fait des recherches sur le forum à ce sujet, mais sans succès.
Alors le principe : J'envoie des mails sur une boite mail gmail (enfin peu importe je pense) et un script php activé par un cron va lire ces mails et les traiter.
Ces mails peuvent venir de mon keitai (donc mon mobile japonais), de mon compte gmail.. (de n'importe ou en fait..) Donc j'ai besoin de connaitre le charset utilisé dans ce mail pour pouvoir l'encoder les data en UTF-8 et les stocker ou non dans ma base MySQL.
J'utilise pour ça
Jusque là ça va.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 $infos = imap_fetchstructure($inbox,$email_number); if ($infos->parameters[0]->attribute == "CHARSET") { echo "Charset : ".$infos->parameters[0]->value; }
Le hic.. C'est que lors de mes tests d'envoi d'email par gmail..
1) Si je ne mets pas de japonais dans le corps du mail, le charset reconnu est "ISO-8859-1". => OK
2) Si je met du japonais.., parfois le charset reconnu est ISO-2022-JP et parfois UTF-8.. Quand j'ai du ISO-2022-JP, je l'encode en UTF-8 et c'est tout bon. Mais quand je reçois de l'UTF-8.. Ben je fais rien et je traite les données comme ça manque de bol je peux pas traiter les données, elles sont illissibles.
Un exemple peut etre qui sera plus parlant.. :
MAIL 1 :
=> Charset reconnu UTF-8 :えあぜ-toto
Data : 44GI44GC44GcLXRvdG8KCi0tIApKdWxpZW4K
=> KO
MAIL 2 :
=> Charset reconnu ISO-2022-JP :こうこう-lycee
Data : こうこう-lycee
=> OK
MAIL 3 :
=> Charset reconnu ISO-2022-JP :えあぜ-toto
こうこう-lycee
=> OK
J'ai fait ces tests 10x, même résultats. Donc si vous voulez tester chez vous aussi..
Bref je ne suis pas doué dans ce domaine d'encodage, charset & co dont peut être que je passe à coté d'un point essentiel.. C'est pourquoi je fais appel à vous
Merci d'avance.
Partager