我有一个翻译成各种语言的网站,包括法语。这些页面并未使用Google翻译或任何其他第三方脚本进行翻译。它们已被手动翻译。
所以在法语与我们联系页面上,我有一个 php联系表单供访问者填写。那里有法语文本联系我们页面,我对字符编码没有问题,与下图不同。成功填写表单后,会弹出一条自动消息,因为法语有特殊字符,成功消息中的那些特殊字符带有带问号的菱形框:
我的代码:
在联系页面的标题中,我有:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
在我的PHP表单中生成成功消息(显然javascript用于显示消息),我有(这只是我整个PHP代码的片段,但我认为这部分是最重要的):
$msg = wordwrap( $msg, 70 );
$headers = "From: $email\r\nBCC:{$bcc}\r\n" . PHP_EOL;
$headers .= "Reply-To: $email" . PHP_EOL;
$headers .= "MIME-Version: 1.0" . PHP_EOL;
$headers .= "Content-type: text/html; charset=utf-8" . PHP_EOL;
$headers .= 'Content-Transfer-Encoding: 8bit'. "\n\r\n" . PHP_EOL;
if(mail($address, $e_subject, $msg, $headers)) {
echo "<div class='success'>";
echo "<h6>Nous vous remercions de votre demande.</h6>";
echo "<p><strong>NB:</strong> Si vous n'avez pas reçu une réponse dans 24 heures, veuillez vérifier votre <u style='font-weight:bold'>boîte spam</u>.</p>";
echo "<div class='close'> </div>";
echo "</div>";
} else {
echo 'ERROR!'; // Dont Edit.
}
请注意以上代码:
$headers .= "Content-type: text/html; charset=utf-8" . PHP_EOL;
我怀疑并认为这就是我的问题所在:
charset=utf-8
1)我已尝试将我的联系页面 http-equiv =&#34; Content-Type&#34; 更改为
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
2),在我的php标题中:
$headers .= "Content-type: text/html; charset=iso-8859-1" . PHP_EOL;
这些改变不起作用,不幸的是我对SO的研究并没有让我更接近解决方案(考虑到每个人的情况与我的情况略有不同)。我不确定这个标题是否有任何问题?:
$headers .= 'Content-Transfer-Encoding: 8bit'. "\n\r\n" . PHP_EOL;
感谢您的帮助和指导。