Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么在使用非英语字符发送电子邮件时,某些字符会显示为问号?_Php_Email_Encoding_Character Encoding - Fatal编程技术网

Php 为什么在使用非英语字符发送电子邮件时,某些字符会显示为问号?

Php 为什么在使用非英语字符发送电子邮件时,某些字符会显示为问号?,php,email,encoding,character-encoding,Php,Email,Encoding,Character Encoding,我尝试使用PHPsmail功能发送非英语字符的文本电子邮件。但是,我的信息中却出现了滑稽的垃圾角色。我怎么修理它 我使用这段代码: function _mail($to, $subject, $content) { $headers = 'From: info@example.com' . "\r\n" . 'Reply-To: info@example.com' . "\r\n" . 'X-Mailer: PHP/' . phpversion(); mail($to,

我尝试使用PHPs
mail
功能发送非英语字符的文本电子邮件。但是,我的信息中却出现了滑稽的垃圾角色。我怎么修理它

我使用这段代码:

function _mail($to, $subject, $content)
{

 $headers = 'From: info@example.com' . "\r\n" .
    'Reply-To: info@example.com' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

 mail($to, $subject, $content, $headers);
}

有些角色被打成问号…

这绝对是Joel文章的一个例子


在成功解决此问题之前,您必须了解字符编码的作用。

这样的邮件包装器可能会对您有所帮助。

您可能需要签出关键是使用UTF-8字符集

添加
内容类型:text/html;charset=UTF-8
MIME版本1.0
内容传输编码:引用可打印到邮件头,如下所示:

$headers = 'From: info@example.com' . "\r\n" .
           'Reply-To: info@example.com' . "\r\n" .
           'Content-Type: text/html; charset=UTF-8' . "\r\n" .
           'MIME-Version: 1.0' . "\r\n" .
           'Content-Transfer-Encoding: quoted-printable' . "\r\n" .
           'X-Mailer: PHP/' . phpversion(); // Why would you want to send this header?
如果要使用HTML而不是文本,还需要在(X)HTML邮件的
标题中添加
META
标记:

<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />


请告诉我们您尝试了什么?一个小测试消息的结果,包括它的头?(看你是否不知道我的意思。)可能是真的,但不是真的对IMHO问题的答案;更像是指向正确方向的指针。@Mathias,这超出了我在给出原始问题时所能想到的范围…;-)您还需要
MIME版本:1.0
和to
内容传输编码:quoted printable
正文,因为UTF-8字符通常不会完整地通过邮件系统。但是,显然,当使用quoted printable时,邮件也应该这样编码。