ColdFusion cfmail主题行中的特殊字符

Ara*_*asu 5 unicode coldfusion cfmail coldfusion-9

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

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

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

小智 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>
Run Code Online (Sandbox Code Playgroud)

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

?=是必需的.

MIME - 编码的Word

" charset "可以是在IANA注册的任何字符集.通常它与消息体是相同的字符集.

" encoding "可以是"Q",表示Q编码,类似于引用的可打印编码,或"B"表示base64编码.

" 编码文本 "是Q编码或base64编码的文本.