0

私は基本的なPHPメールフォームを持っていますが、言語がフランス語のアクセントで書かれていると、何をしても、一度送信すると文字が正しく表示されないようです。

私が使用している例文は次のとおりです。

Bonjour、ceci est unmessagedetestenvoyéavecPHPpourAnalyzer si oui ou non la mise en forme estcorrecteoufausse。Lespersonnagesnedevraientêtrerendusdemanièreappropriéecommeprévudanslelexiquefrançais。

しかし、それは次のようになります。

Bonjour、ceci est unmessagedetestenvoyéavecPHPpour Analyzer si oui ou non la mise en forme estcorrecteoufausse。Les personnagesnedevraientêtrerendusdemanièreappropriéecommeprévudanslelexiquefranç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"));

引数に UTF-8 を指定して htmlentities() 関数を使用します。

これにより、問題が完全に修正されました。それが誰かを助けることを願っています。

于 2012-10-09T15:28:12.237 に答える