法语字符在PHP邮件中无法正确显示

时间:2012-10-09 14:48:50

标签: email utf-8 character-encoding php

我有一个基本的PHP邮件表单,但无论我做什么,如果语言是用法语口音写的,我似乎无法在发送后正确显示字符。

我使用的例句是:

  

Bonjour,ceci est un message detestenvoyéavecPHP pour analyzer si   oui ou non la mise en forme est correcte ou fausse。 Les personnages ne   devéientêtrerendusdemanièreappropriéecommpredévudansle   lexiquefrançais。

但它出现了:

  

Bonjour,ceci est un message detestenvoyéavec PHP pour analyzer si   oui ou non la mise en forme est correcte ou fausse。 Les personnages ne   devéientétrerendusdemanièreappropriéecommeprévudansle   lexiquefrançais。

正如您所看到的,一旦电子邮件中收到带有重音符号的字符就会被搞砸。

我正在处理我的消息变量:

$fieldenquiry = utf8_encode($_POST['fieldenquiry']);

我当时就像这样发送:

$cc = "example@example.com";
$subject = "Website Enquiry";

$message = '<html><body>';
$message .= "<p><strong>Enquiry</strong><br />" . nl2br($fieldenquiry) . "</p>";
$message .= "</body></html>";

$headers = "From: " . $fieldemail . "\r\n";
$headers .= "Cc: " . $cc . "\r\n";
$headers .= "Reply-To: ". $fieldemail . "\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=UTF-8\r\n";

mail($to, $subject, $message, $headers);

我无论如何都不是PHP开发人员。表单的工作方式是它发送等,但我无法弄清楚为什么字符会搞乱。我正在编码POST变量,我正在发送带有UTF-8字符集的HTML格式。

获得帮助和指导。

迈克尔。

修改

我想出来了。请参阅下面的答案。

1 个答案:

答案 0 :(得分:3)

如果有人需要类似的帮助,我想出来了:

我更改了这一行:

$fieldenquiry = utf8_encode($_POST['fieldenquiry']);

对此:

$fieldenquiry = utf8_encode(htmlentities($_POST['fieldenquiry'], ENT_QUOTES, "UTF-8"));

我使用htmlentities()函数和参数中指定的UTF-8。

这完全解决了这个问题。希望它可以帮到某人。

相关问题