来自变量的 phpmailer 主题创建编码问题
phpmailer subject from variable creates encoding issue
我正在使用 phpmailer 通过 php 发送电子邮件。
当我尝试在主题中发送特殊(土耳其语)字符时,它会在已发送的电子邮件中显示 html 实体。如果我在 body 部分包含相同的变量,它工作正常。请看下面:
$mail->Subject = $stuname."PhD Qualifying Exam Application";
我试过 html_entity_decode 功能但没有用。
此外,如果我输入土耳其语字符而不是从变量中获取,它工作正常。
最后,如果我在发送电子邮件之前打印变量,它打印正常,没有任何编码问题。但是字符数比应该的多..
那么,知道为什么我在主题中遇到编码问题是在从变量获取值时吗?
谢谢!
PS:
我也在添加这些 headers:
$mail->SetLanguage("tr", "phpmailer/language");
$mail->CharSet ="utf-8";
$mail->Encoding="base64";
我找到了解决方案,none 的 html 解码函数可以正常工作,所以我为土耳其语字符编写了自己的函数。
function replacehtml($inputText) {
$replace = array('İ','ı','Ö','ö','Ü','ü','Ç','ç','Ğ','ğ','Ş','ş');
$search = array('İ','ı','Ö','ö','Ü','ü','Ç','ç','Ğ','ğ','Ş','ş');
$outputText=str_replace($search, $replace, $inputText);
return $outputText;
}
我正在使用 phpmailer 通过 php 发送电子邮件。
当我尝试在主题中发送特殊(土耳其语)字符时,它会在已发送的电子邮件中显示 html 实体。如果我在 body 部分包含相同的变量,它工作正常。请看下面:
$mail->Subject = $stuname."PhD Qualifying Exam Application";
我试过 html_entity_decode 功能但没有用。
此外,如果我输入土耳其语字符而不是从变量中获取,它工作正常。
最后,如果我在发送电子邮件之前打印变量,它打印正常,没有任何编码问题。但是字符数比应该的多..
那么,知道为什么我在主题中遇到编码问题是在从变量获取值时吗?
谢谢!
PS:
我也在添加这些 headers:
$mail->SetLanguage("tr", "phpmailer/language");
$mail->CharSet ="utf-8";
$mail->Encoding="base64";
我找到了解决方案,none 的 html 解码函数可以正常工作,所以我为土耳其语字符编写了自己的函数。
function replacehtml($inputText) {
$replace = array('İ','ı','Ö','ö','Ü','ü','Ç','ç','Ğ','ğ','Ş','ş');
$search = array('İ','ı','Ö','ö','Ü','ü','Ç','ç','Ğ','ğ','Ş','ş');
$outputText=str_replace($search, $replace, $inputText);
return $outputText;
}