电子邮件中不支持日语字符集

时间:2014-05-07 10:51:39

标签: php email

我正在使用php charset=utf-8发送电子邮件。

请检查我的代码:

<?php
function sendEmail($to,$from,$subject,$message){

$message = "<table><tr><td>".$message."</td></tr></table>";
$bcc1 = "c*******@gmail.com";

$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers.= 'Content-type: text/html; charset=utf-8' . "\r\n";
$headers.= 'From:' .$from."\r\n";
$headers.= 'BCC:' .$bcc1."\r\n";

if(mail($to,$subject,$message,$headers)){

    echo "Email sent";
}
else{
    echo "Email failed";
}
}


$getSettings = mysql_fetch_assoc(mysql_query("SELECT * FROM settings WHERE name='WELCOME_EMAIL'"));
$msg = $getSettings['body'];
$subject = $getSettings['display'];
$from = "l********@gmail.com"           
$message = mb_convert_encoding($msg, "ISO-2022-JP","UTF-8");
sendEmail($to,$from,$subject,$message);

?>

我已使用上述代码发送电子邮件,但我没有收到正确的日文格式文本。

请参阅截图 enter image description here

2 个答案:

答案 0 :(得分:3)

这可能不是邮件问题,但charset可能是ISO-2022-JP而不是utf-8

$headers .= "Content-Type: text/html;charset=ISO-2022-JP \n";

希望这有帮助。

答案 1 :(得分:0)

Naota你是对的。

但是当你在获取之前从数据库中获取内容时,你必须使用下面的PHP代码

mysql_query('SET character_set_results=utf8');
mysql_query('SET names=utf8');
mysql_query('SET character_set_client=utf8');
mysql_query('SET character_set_connection=utf8');
mysql_query('SET collation_connection=utf8_unicode_ci');

以便从数据库中获取日本字符