php邮件功能,名称和姓氏带有重音符号

时间:2013-09-02 15:08:35

标签: php email diacritics

我真的不明白为什么当用户发送电子邮件请求时,主题和消息是完美的(没有逃避,重音符号,符号......)除了名字和姓氏外,一切都好!

例如,如果我的用户全名是:在我的客户端测试è'ü-x-'z << / strong>(MS outlook),我看到:测试Ã''ü-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]保存在DB而不是POST中,在我使用UTF8的所有PHP页面中:

<meta charset="utf-8">

header( 'Content-Type: text/html; charset=utf-8' );

mysqli_query( $con, "SET NAMES 'utf8'" ) or die( 'Error (charset)' );

我怎么解决?也许有PHP函数?

1 个答案:

答案 0 :(得分:0)

虽然您应该理想地解决其他地方的编码问题,但您可以使用iconv函数尝试转换。

iconv ( string $in_charset , string $out_charset , string $str )

可以应用于您的代码:

iconv("ISO-8859-1", "UTF-8", $user['name'])

困难在于识别你的来源的编码,如果你知道这一点,那么你就可以去了。