Mailto et caractères accentués

Eléphant du PHP | 150 Messages

05 oct. 2008, 15:48

Bonjour à tous,

Je suis devant un problème de caractères accentués dans une fonction qui envoie un mail de confirmation de commande et propose au client de recommander le site.

Le script envoie donc un mail en format html, encodage iso-8859-1, comprenant un lien avec mailto.
Le contenu du message vient en partie de ma base donnée.
Voici le code :

$this->message .= 'Pour cela, cliquez sur <a href="mailto:?subject=Je te recommande ce'.$this->term.' produit'.$this->term.' sur www.site.com&body=Bonjour,%0A%0AJe viens de commander ce'.$this->term.' produit'.$this->term.' sur le site. AchËte-en aprËs moi, nous aurons un meilleur prix !%0A%0A';
																		
foreach($id_vi as $this->i => $this->value){ $this->message .= '- '.utf8_decode($this->ref[$this->i]).' (http://www.vinorazzia.com'.$this->lien&#91;$this->i&#93;.')%0A'; }
																		
$this->message .= '">ce lien !</a></b>';
J'obtiens des signes bizarres à la fois dans la partie du texte pré-rédigée et dans celle issue de base.

Voici ce que j'ai essayé :
- formulation classique ("après" plutôt que "aprËs");
- avec ou sans utf8_decode() sur les variables issues de la bases;
- avec ou sans utf8_decode() sur tout le message

Mais rien n'y fait : j'obtiens des ? ou des signes absents qui amputent la suite do mot.

Dond, heeeeeeeeeelp ! Auriez-vous une idée?

Merci d'avance.

Mammouth du PHP | 2937 Messages

05 oct. 2008, 22:42

Et pourquoi ne pas tenter d'explorer urlencode() ?