2010-05-08 6 views
0

J'ai probablement un problème stupide. Dans un script, je génère une URL avec des paramètres GET, quelque chose comme "www.mydomain.com/index.php?item=1234". Cette URL sera envoyée par PHP via mail() dans un encodage UTF-8 (le script lui-même est également utf-8). Maintenant, chaque fois que j'ai le paramètre GET avec deux nombres après le '=' l'URL dans l'email ressemble à 'www.mydomain.com/index.php?item□34' avec un rectangle au lieu de '= 12'. Je suis sûr qu'il existe un moyen facile de résoudre ce problème?codage de = 1 dans les e-mails

Merci à l'avance,

Maenny

Répondre

1

Vous devez utiliser quoted-printable codage dans lequel codant pour les séquences commencent par =. Au lieu de vous débattre avec l'encodage manuellement, choisissez une bibliothèque de messagerie qui fait cela (et beaucoup plus) pour vous. Je recommande PHPmailer.

De plus, les paramètres d'URL sont moche. Il est très facile de définir de bonnes URL via le module Apache mod_rewrite et d'utiliser des URL comme www.mydomain.com/item/1234, ce qui présente l'avantage d'être indépendant de l'implémentation et un peu plus favorable au SEO. (Pour une convivialité SEO complète, utilisez www.mydomain.com/item/my-cool-item ou au moins www.mydomain.com/item/1234/my-cool-item.)

+0

La solution minimaliste, que je recommande fortement, remplace '=' par '= 3D'. – Tgr

+0

Thx J'ai trouvé ceci: http://www.php.net/manual/de/function.quoted-printable-encode.php et ajouté la fonction à mon inclusion. – Maenny