我有一个基本的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格式。
获得帮助和指导。
迈克尔。
修改
我想出来了。请参阅下面的答案。
答案 0 :(得分:3)
如果有人需要类似的帮助,我想出来了:
我更改了这一行:
$fieldenquiry = utf8_encode($_POST['fieldenquiry']);
对此:
$fieldenquiry = utf8_encode(htmlentities($_POST['fieldenquiry'], ENT_QUOTES, "UTF-8"));
我使用htmlentities()函数和参数中指定的UTF-8。
这完全解决了这个问题。希望它可以帮到某人。