为什么此邮件主题编码不正确? (php 邮件)

发布于 2024-10-09 04:07:23 字数 650 浏览 3 评论 0原文

我使用此代码发送电子邮件:

$headers="MIME-Version: 1.0"."\n";
$headers.="Content-type: text/plain; charset=UTF-8"."\n";
$headers.="From: $name <$email>"."\n";

mail($to, '=?UTF-8?B?'.base64_encode($subject).'?=', $text, $headers, '[email protected]'); 

如果我使用瑞典字母表中的特殊字符 Å ä Ö,则它们的编码不正确,因此它们会显示为 ö 的 Á¶ 。

但是,如果我将 $to 变量更改为 gmail 帐户电子邮件,则不会发生这种情况,然后它们会正确显示。

有人知道吗?

谢谢

更新:

当我echo $name时,名称以utf8格式正确显示,所有特殊字符都很好地显示。

I use this code to send an email:

$headers="MIME-Version: 1.0"."\n";
$headers.="Content-type: text/plain; charset=UTF-8"."\n";
$headers.="From: $name <$email>"."\n";

mail($to, '=?UTF-8?B?'.base64_encode($subject).'?=', $text, $headers, '[email protected]'); 

If I use special characters Å Ä Ö from the swedish alphabet, they are not encoded properly, so they turn up like ö for ö.

However, this doesn't happen if I change the $to variable to a gmail account email, then they are shown correctly.

Anybody got any idea?

Thanks

UPDATE:

When I echo $name, the name is displayed correctly, in utf8, with all special chars nicely shown.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

无可置疑 2024-10-16 04:07:23

也许您应该使用 iconv 将输入文本转换为 UTF-8,我认为 GMail 可以为您做到这一点。

$text =  iconv(mb_detect_encoding($text), "UTF-8//IGNORE//TRANSLIT", $text)

还要检查您的 PHP 页面是否为 Unix UTF-8。

或者

您可以使用 phpMailer 或 libmail

Maybe you should convert input text to UTF-8 using iconv, I think GMail does that for you.

$text =  iconv(mb_detect_encoding($text), "UTF-8//IGNORE//TRANSLIT", $text)

Also check that you PHP page is Unix UTF-8.

OR

You can use phpMailer or libmail

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文