2009-08-27 4 views
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']); 
} 

私は、電子メール、ノルウェーの文字、A、øてメッセージを受信して​​、AEはÃの¥となり、A、Ã|

私は、正しい文字を表示するためには何ができますか?

+0

私はすでにこの問題を解決しました。何が起こっているかについての詳しい情報が必要な方は、こちらをご覧ください:http://forthescience.org/blog/2008/02/29/unraveling-unicode-problems-in-wikkawik​​i/ –

答えて

1

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

<?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); 
} 
?> 
6

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

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

は、これを達成するためにPHP mail() function$additional_headersパラメータを設定します。

0

私はあなたのコード全体彼らに右

0

使用UTF8を表示するutf8_decode functionを使用することができますので、それらの文字がUTF8にエンコードされていることと思います。私の場合、this pageはとても役に立ちました。

0

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

関連する問題