首页 > 解决方案 > 磅号在发送的电子邮件中显示为“」”符号,标题元标记为 charset=utf-8

问题描述

通过电子邮件发送时,我的 php 文件中的磅符号被转换为奇怪的“」”符号。

我尝试了许多不同的解决方案,但似乎都没有。

已尝试将“£”替换为 £ 等...

这是在我的标题中:

<meta http-equiv="content-type" content="text/html; charset=utf-8" />
$message .= "Price Each: £".$row_get['price']. "\n";  
mail($to1, $subject1, $message, $header1); // send the e-mail to customer

提前致谢

标签: phphtml

解决方案


问题是编码问题。您没有看到 UTF-8 渲染。

£ 符号被编码为 0xA3,但在MS932 编码(“日语 ANSI”)中,0xA3 是您看到的 '」' 符号。

要正确设置电子邮件的编码,您需要添加

$headers = 'Content-Type: text/html; charset=utf-8' . "\r\n";

到你的标题。

您还应该仔细检查您的文件是否以 UTF-8 正确编码。如果你用 MS932 编码写井号,那将被编码为 65410 65379。巧合的是,」是相同的 '」' 符号(ツ」 将显示 ツ」)。

如果您想了解更多信息,Jon Skeet(Java,但根本原因是相同的)在这个 SO 答案中对此进行了更彻底的解释。


推荐阅读