ColdFusion cfmail主题行中的特殊字符

时间:2012-02-21 09:21:41

标签: unicode coldfusion coldfusion-9 cfmail

邮件主题行中的特殊字符转换为问号或框。

我试图在URLEncodedFormat中包装主题行的动态字符串,但结果却徒劳无功。

<cfset strSubject= URLEncodedFormat(s)>
<cfmail 
  from="xxxxx@xx.com" 
  to="yyyyyyy@yyy.com" 
  subject="#strSubject#"         
  type="html"
>
  #testText#
</cfmail>

2 个答案:

答案 0 :(得分:10)

假设特殊字符是unicode字符,则必须将字符串编码为base64格式并在主题行中使用它。像这样,

<cfset strSubject="Demande d’chantillons supplémentaires">
<cfset strSubject=ToBase64(strSubject, "utf-8")>

<cfmail from="test@test.com" to="test@test.com" subject="=?utf-8?B?#strSubject#?=" type="html">
    #testText#
</cfmail>

主题行必须采用=?<charset>?<encoding>?<encoded text>?=

格式

?=是必需的。

MIME - Encoded Word

  

charset ”可以是在IANA注册的任何字符集。通常   它将与消息体一样是charset。

     

编码”可以是“Q”,表示类似的Q编码   引用的可打印编码,或表示base64编码的“B”。

     

编码文字”是Q编码或base64编码的文字。

答案 1 :(得分:0)

另外:在cfmail标记中添加charset =“utf-8”。如果您在受试者中使用utf-8,您可能也会在体内使用它。