2008-11-11 6 views
2

J'essaie de générer automatiquement un e-mail en texte brut avec un symbole de marque. J'ai essayé tout ce à quoi je pouvais penser, mais ça ne se passe toujours pas.Caractères spéciaux dans CFMail

<cfmail from="#x#" to="#y#" subject="test" charset="UTF-8"> 
    ™ 
    &trade; 
    #Chr(153)# 
</cfmail> 

Répondre

5

Ceci est un problème de codage.

Vous indiquez que le courrier est codé en UTF-8, mais Chr(153) ne renvoie pas de symbole de marque en Unicode. Il fonctionne sous Windows-1252, mais Chr() fonctionne avec les points de code Unicode.

Utilisez Chr(8482) pour le clouer sur Unicode TM symbol. J'ai trouvé un code info page that outlines the issue nicely. Par ailleurs, l'écriture du symbole TM littéral fonctionne aussi pour moi. Mais cela suppose que vos fichiers .cfm sont en fait codés comme Windows-1252 et que l'exécution de ColdFusion est configurée pour attendre ceci (Les deux sont les paramètres par défaut sur les systèmes Windows, où je les ai testés. vers d'autres systèmes). ColdFusion convertit toutes les chaînes en Unicode en interne, alors peut-être que quelque chose est cassé dans cette chaîne d'attentes dans votre configuration.

+0

Merveilleux, merci! –

+1

http://www.pemberley.com/janeinfo/latin1.html#unicode renvoie un 404. Vous avez un meilleur emplacement? – ale

+0

@AlEverett L'Archive Intenet a toujours une copie: http://web.archive.org/web/20071228042330/http://www.pemberley.com/janeinfo/latin1.html#unicode – Tomalak

2

Je pense que ce n'est pas tellement un problème avec CFMAIL mais plutôt un problème avec les clients de messagerie affichant les codes de caractères dans les messages texte brut littéralement plutôt que de les convertir à leurs caractères correspondants. L'utilisation de CFMail en mode HTML devrait fournir le résultat que vous recherchez.

Questions connexes