2013-11-15 121 views
2

任何人都可以幫助我請如何爲這些字符添加utf-8 Unicode?將Unicode UTF8添加到電子郵件

žýáťčšľľzŽŘ

現在的電子郵件看起來像這樣

Dostali STEnovúsprávu。塗súpodrobnosti:JMA©NO:tár Tel.ÄÃslo:4996611

<?php 

$EmailFrom = "..."; 
$EmailTo = "[email protected]"; 
$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\">"; 
} 
?> 

感謝

+0

您是否閱讀過有關UTF-8標頭的[手冊](http://php.net/manual/en/function.mail.php)或任何您使用的編碼?你有沒有考慮使用像[phpmailer](http://phpmailer.worxware.com/)這樣的已經制作好的郵件類? –

回答

3

你有你的腳本兩個曖昧的部分,其中不考慮字符集。可能你的表單沒有發送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"); 
    

BTW,以便將用戶重定向一個更快的方法是設置在該Location頭響應。使用:

header('Location: contactthanks.php')