我真的不明白为什么当用户发送电子邮件请求时,主题和消息是完美的(没有转义、重音、符号、..),除了姓名和姓氏之外,一切都很好!
例如,如果我的用户全名是:Test è'ü-x-'zî in my client (MS Outlook) 我看到:Test è'ü-x-'zî
发送电子邮件的代码是:
$subject = stripslashes( $subject );
$message = stripslashes( $message );
$headers = "MIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit\n";
// problem here
$headers .= "From: $user[name]<test@example.com>\nReply-to: $user[name]<$user[email]>\n\n";
@mail( $email, $subject, $message, $headers );
PS:$user[name] 保存在数据库中而不是 POST 中,在我所有的 PHP 页面中我都使用 UTF8:
<meta charset="utf-8">
header( 'Content-Type: text/html; charset=utf-8' );
mysqli_query( $con, "SET NAMES 'utf8'" ) or die( 'Error (charset)' );
我该如何解决?也许有一个PHP函数?