utf-8 charset没有与PEAR Mail_mime联系表格

时间:2014-04-07 21:47:55

标签: php utf-8 character-encoding pear contact-form

我发现并尝试了其他问题中给出的关于特殊字符和其他相关问题的utf编码的各种解决方案,但没有任何成功。

我有一个html联系表单,使用PEAR Mail mime通过一个简单的php脚本将信息发送到我的邮件地址。我可以在localhost上发送包含来自我的测试站点的特殊字符的信息,没有问题,但是在我上传到我的服务器后没有。

例如消息: 测试特殊字符:éèçàô

从服务器发送后

变为: 测试特殊字符:éÃÃÃÃÃÃ'

我猜这是我的网络服务器的编码问题,但我对如何解决问题感到有些困惑。

包含表单的文件中的元标记设置为:

<meta charset="utf-8"> 

并且表单被指定为接受charset utf-8:

<form name="contact" method="post" action="assets/send_form.php" accept-charset="UTF-8">

我也试过用php文件发送内容:

header("Content-Type: text/html; charset= UTF-8");

以及使用'Content-Type'='text / html创建邮件的$标头;字符集= “UTF-8”。

我脚本中的相关php代码:

//This section creates the email headers
$headerss=array(); 
$headerss['From']= $from_address; 
$headerss['To']= $siteEmail; 
$headerss['Subject']= $email_subject; 
$headerss['Return-Path']= $contactEmail; 
$headerss['Date']= date("r"); 
$headerss['Content-Type'] = 'text/html; charset="UTF-8"';  

// This section creates the smtp inputs
$auth = array('host' => $host, 'port' => $port, 'auth' => true, 'username' => $username, 'password' => $password);

// create new Mail_mime instance, set utf-8 charset
$mail = new Mail_mime();
$mail -> setHTMLBody($email_message); 


//CHECK THIS OUT FOR UTF-8 ***************************** 

$mimeparams=array(); 
$mimeparams['text_encoding']="7bit"; 
$mimeparams['text_charset']="UTF-8"; 
$mimeparams['html_charset']="UTF-8";
$mimeparams['head_charset']="UTF-8"; 
$mimeparams['eol']= "\n" ; 

$body = $mail->get($mimeparams); 
$headers = $mail->headers($headerss); 


// This section send the email
$smtp = Mail::factory('smtp', $auth);
$sendmail = $smtp->send($siteEmail, $headers, $body);

任何帮助都将非常感激。感谢。

2 个答案:

答案 0 :(得分:0)

尝试放在

之前
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

答案 1 :(得分:0)

我遇到了同样的问题,我的解决方案是以相同的格式保存php文件,以UTF-8格式保存。无论如何,这解决了我的问题。