ユーザーが電子メール リクエストを送信するときに、件名とメッセージが完全である (エスケープ、アクセント、記号などがない) 理由が本当にわかりません。姓と名以外はすべて問題ありません!
たとえば、ユーザーのフル ネームが次の場合: Test è'ü-x-'zîクライアント (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 ではなく DB に保存されます。すべての 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関数がありますか?