3

谁能帮我请如何为这些字符添加 utf-8 Unicode?

žýáťčšľľzŽŘ

现在电子邮件看起来像这样

Dostali ste novú správu。Tu sú podrobnosti: Jméno: tár Tel.ÄÃÃslo: 4996611

<?php

$EmailFrom = "...";
$EmailTo = "mail@mail";
$Subject = "Zpráva s ";
$name = Trim(stripslashes($_POST['name'])); 
$phone = Trim(stripslashes($_POST['phone'])); 
$email = Trim(stripslashes($_POST['email'])); 
$message = Trim(stripslashes($_POST['message'])); 

// validation
$validationOK=true;
if (!$validationOK) {
  print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">";
  exit;
}

// prepare email body text
$Body = "";
$Body .= "Name: ";
$Body .= $name;
$Body .= "\n";
$Body .= "Tel: ";
$Body .= $phone;
$Body .= "\n";
$Body .= "Email: ";
$Body .= $email;
$Body .= "\n";
$Body .= "Message: ";
$Body .= $message;
$Body .= "\n";

// send email 
$success = mail($EmailTo, $Subject, $Body, "From: <$EmailFrom>");

// redirect to success page 
if ($success){
  print "<meta http-equiv=\"refresh\" content=\"0;URL=contactthanks.php\">";
}
else{
  print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">";
}
?>

谢谢

4

1 回答 1

4

您的脚本中有两个不明确的部分没有考虑字符集。您的表单可能未发送 UTF-8,或者您可能在电子邮件中发送 UTF-8,但客户端期望使用不同的编码。

  1. 我假设您正在使用表单来发布数据。确保将其设置为从浏览器发送 UTF-8。字符串现在将采用 UTF-8 编码。

    <form action="myform" accept-charset="UTF-8">
    
  2. 您需要将字符集和传输编码标头添加到电子邮件标头:

    $success = mail($EmailTo, $Subject, $Body, "From: <$EmailFrom>\r\nContent-Type: text/plain; charset=UTF-8\r\nContent-Transfer-Encoding: 8bit");
    

顺便说一句,重定向用户的更快方法是Location在响应中设置标头。利用:

header('Location: contactthanks.php')
于 2013-11-16T08:13:25.260 回答