0

お問い合わせフォームに次のPHPがあります。

// Ensure a message was entered, then sanitize it
if(!empty($_POST['cf_m']) && $_POST['cf_m']!='Enter Your Message Here')
{
    $message = strip_tags($_POST['cf_m']);
}

メールでメッセージを受信すると、ノルウェー語の æ、ø、å が ã¦、ø、Ã¥ になります。

正しい文字を表示するにはどうすればよいですか?

4

5 に答える 5

6

フォームはとして提供されているようUTF-8ですが、電子メールはISO-8859-1(または別の種類)として送信されます。Content-type次に、ヘッダーを設定して、送信された電子メールの文字エンコードを明示的に設定することができます。

Content-type: text/plain; charset=UTF-8

$additional_headersこれを実現するには、PHPmail()関数のパラメーターを設定します。

于 2009-08-27T12:34:41.383 に答える
1

mail()( http://de.php.net/manual/de/function.mail.php)のphp-commentsで説明されているように、メールヘッダーでエンコーディングを設定する必要があります。

<?php
function mail_utf8($to, $subject = '(No subject)', $message = '', $from) {
  $header = 'MIME-Version: 1.0' . "\n" . 'Content-type: text/plain; charset=UTF-8'
    . "\n" . 'From: Yourname <' . $from . ">\n";
  mail($to, '=?UTF-8?B?'.base64_encode($subject).'?=', $message, $header);
}
?>
于 2009-08-27T12:33:42.743 に答える
0

これらの文字はUTF8でエンコードされているので、utf8_decode関数を使用して正しく表示できると思います

于 2009-08-27T12:35:06.080 に答える
0

これは、ノルウェー語の文字でメールを送信することについてですか? SwiftMailer
を見てください。これは、電子メールを処理するための優れたライブラリです。メッセージの文字セットの設定については、http://swiftmailer.org/docs/message-charsetで説明されています。(また、utf-8 は SwiftMailer のデフォルトであるため、この場合は何もする必要はありません。)

于 2009-08-27T14:05:01.203 に答える
0

コード全体で UTF-8 を使用します。私にとって、このページはとても役に立ちました。

于 2009-08-27T13:01:17.210 に答える