我发送的HTML电子邮件中包含一个ü-Umlaut。我在HTML <head>
以及邮件标题中将编码设置为UTF-8:
HTML
$body = '<html>
<head>
<title>My Title</title>
<meta charset="utf-8">
</head>
<body>
<h1>Here comes the ü-Umlaut</h1>
...
<p>Here comes an ö-Umlaut</p>
</body>
</html>';
邮件标题
$header = 'MIME-Version: 1.0' . "\r\n";
$header .= 'Content-type: text/html; charset=utf-8' . "\r\n";
在iPhone上查看电子邮件时,我看到ü
而不是ü
。但是在我的Gmail帐户上查看邮件时,ü
会正确显示。 ö
在两台设备上都能正确显示。
我的一位同事正确查看了他的电子邮件客户端中的ü
。但是他没有看到ö
,而是看到里面有问号的方格(可能类似于�
)。
现在这里出了什么问题,我该如何解决?
答案 0 :(得分:0)
确保您的php文件也强制使用UTF-8:
<?php
header('Content-type: text/html; charset=UTF-8');
调用HTML页面的计数相同:
<meta http-equiv="content-type" content="text/html; charset=utf-8">
或者如果您使用ajax:
$.ajax(
{
url: './sendemail.php',
type: 'POST',
contentType: "application/x-www-form-urlencoded; utf-8",
所有参与者都必须使用相同的字符集。尤其是最终的电子邮件客户端:
<meta http-equiv=Content-Type content=text/html; charset=UTF-8>