0

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

我使用的例句是:

Bonjour, ceci est un message de test envoyé avec PHP pour 分析器 si oui ou non la mise en forme est Correcte ou fausse。Les personnages ne devraient être rendus de manière appropriée comme prévu dans le lexique français。

但结果如下:

Bonjour, ceci est un message de test envoyé avec PHP pour 分析器 si oui ou non la mise en forme est Correcte ou fausse。Les personnages ne devraient être rendus de manière appropriéée comme prévu dans le lexique franç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 格式。

帮助和指导表示赞赏。

迈克尔。

编辑:

我想通了。请看下面我的回答。

4

1 回答 1

3

我想知道是否有人需要类似的帮助:

我改变了这一行:

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

对此:

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

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

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

于 2012-10-09T15:28:12.237 回答