大家好,我需要一些帮助。。目前,我正在使用PHP mail()函数。西班牙语字符将出现在我的邮件(áéíúññ)中。所以通常我发送邮件时不能正确显示。所以我将这一行添加到HTML文件中
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
这行是php文件
header('Content-Type: text/html; charset=utf-8');
和总邮件功能是
$message = "<strong>Nom: </strong>".$_POST["info_Nom"]."<br />";
$message .= "<strong>Prenom: </strong>".$_POST["prenom"]."<br />";
$message .= "<strong>Téléphone : </strong>".$_POST["Phone"]."<br />";
$subject = 'Nouveau message ' . $_POST["info_Nom"];
$headers = "From: ".$_POST["mail"]."\n";
$headers .= "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=iso-8859-1" . "\r\n";
$send = mail($to,$subject,$message,$headers);
然后在我的Android gmail应用程序和Windows Mail中运行正常。但是在苹果邮件中,它无法正确显示mail app link。这样显示
Nom: test
Prenom: test
Téléphone : 08019238012
需要一些帮助。预先感谢
答案 0 :(得分:3)
如果您的应用程序使用UTF-8,并且您想使用ISO-8859-1生成电子邮件,则实际上需要convert将文本从源编码转换为目标编码。否则,这就像将picture.jpg
重命名为movie.mp4
并希望获得视频。例如:
$source = 'Ñ€';
$target = mb_convert_encoding($source, 'iso-8859-1', 'utf-8');
var_dump(bin2hex($source), bin2hex($target));
string(10) "c391e282ac"
string(4) "d13f"
请注意,ISO-8859-1中的0x3F
是?
。这是当您拥有不属于目标编码的字符时得到的替换字符,例如€符号就是这种情况。
现在,不要这样做。我们快到了2019年。到处都使用UTF-8,而忘了像ISO-8859-1或CP850这样的古老编码。
答案 1 :(得分:2)
正如我在评论中所说;您需要对所有内容使用相同的字符编码,即UTF-8。
即:Content-type:text/html;charset=UTF-8
,包括保存文件。