0

この問題について調べて例を確認しようとしましたが、これを理解する方法が見つかりませんでした。確認書が買い手/売り手に送信されると、ÅÄÖ またはその他の特殊文字が壊れてしまいます。これを変更するにはどうすればよいですか? スクリーンショットはこちら: http://snag.gy/7IFDQ.jpg

ご覧のとおり、テキストと件名の両方が破損しています。

もちろん、PayPal プロファイルで utf-8 に変更しました。これは別のものです。長い時間をかけてPDT用に修正する方法を見つけましたが、IPN側で「同じ」問題が発生しています。

これを正確に修正する方法を知っている人はいますか? 必要に応じて、IPN.php と Ipnhandler を貼り付けることができます。

4

1 に答える 1

0

メールのヘッダー (件名など) とメールのメッセージの両方で、メール自体と拡張子に UTF-8 を設定する必要があります。

顧客にメールを送信し、販売者にコピーを送信するコード サンプルを次に示します。

// send user an email with a confirmation
    $firstname = $_POST['first_name'];
    $lastname = $_POST['last_name'];
    $to = filter_var($_POST['payer_email'], FILTER_SANITIZE_EMAIL);
    $to2 = filter_var($_POST['your@email.com'], FILTER_SANITIZE_EMAIL);
    $subject = "Tack för Ert köp! / Thank you for your order!";
    $subject2 = "(COPY) Tack för Ert köp! / Thank you for your order!";
    $headerFields = array(
    'Date: ' . date('r', $_SERVER['REQUEST_TIME']),
    "Subject: =?UTF-8?Q?".imap_8bit($subject)."?=",
    "From: {$to}",
    "MIME-Version: 1.0",
    "Content-Type: text/html;charset=utf-8"
    );
    $headerFields2 = array(
    'Date: ' . date('r', $_SERVER['REQUEST_TIME']),
    "Subject: =?UTF-8?Q?".imap_8bit($subject2)."?=",
    "From: {$to}",
    "MIME-Version: 1.0",
    "Content-Type: text/html;charset=utf-8"
    );
    $message = "$firstname $lastname, $payer_email <br />
MESSAGE TO CUSTOMER;
    $message2 = "$firstname $lastname, $payer_email <br />
MESSAGE TO CUSTOMER
(NOTE: THIS IS A COPY)";
    mail($to, $subject, $message,  implode("\r\n", $headerFields));
    mail($to2, $subject2, $message2,  implode("\r\n", $headerFields2));   
    }

何が起こっているかというと、$headerFields"MIME-Version: 1.0", "Content-Type: text/html;charset=utf-8"がメールのメッセージに UTF-8 を設定するということです。単独で設定する必要がある件名を除いて、ヘッダーにも適用されます。"Subject: =?UTF-8?Q?".imap_8bit($subject)."?=",

于 2013-04-30T16:18:02.897 に答える