php dan utf-8 SOS

Saya mengalami masalah dengan pengaturan ke utf-8 di php dengan formulir kontak ini:

    <?php header('Content-type: text/plain; charset=utf-8');

require 'PHPMailer-master/PHPMailerAutoload.php';

$fromEmail = '[email protected]';
$fromName = 'test form';

$sendToEmail = '[email protected]';
$sendToName = 'TEST';

$subject = 'New message from contact form';
$fields = array('name' => 'Name', 'surname' => 'Surname', 'phone' => 'Phone', 'email' => 'Email', 'message' => 'Message');

$okMessage = 'Contact form successfully submitted. Thank you, I will get back to you soon!';
$errorMessage = 'There was an error while submitting the form. Please try again later';

error_reporting(E_ALL & ~E_NOTICE);

try
{

    if(count($_POST) == 0) throw new \Exception('Form is empty');

    $emailTextHtml = "<h1>You have a new message from your contact form</h1><hr>";
    $emailTextHtml .= "<table>";

    foreach ($_POST as $key => $value) {
        if (isset($fields[$key])) {
            $emailTextHtml .= "<tr><th>$fields[$key]</th><td>$value</td></tr>";
        }
    }
    $emailTextHtml .= "</table><hr>";
    $emailTextHtml .= "<p>Have a nice day,<br>Best,<br>Ondrej</p>";

    $mail = new PHPMailer;

    $mail->setFrom($fromEmail, $fromName);
    $mail->addAddress($sendToEmail, $sendToName);
    $mail->addReplyTo($from);

    $mail->isHTML(true);

    $mail->Subject = $subject;
    $mail->msgHTML($emailTextHtml);


    if(!$mail->send()) {
        throw new \Exception('I could not send the email.' . $mail->ErrorInfo);
    }

    $responseArray = array('type' => 'success', 'message' => $okMessage);
}
catch (\Exception $e)
{
    $responseArray = array('type' => 'danger', 'message' => $e->getMessage());
}


if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
    $encoded = json_encode($responseArray);

    header('Content-Type: application/json');

    echo $encoded;
}
else {
    echo $responseArray['message'];
}

Ketika saya mengirim pesan, saya mendapatkan ini: 'Сандрина'. Saya membaca semua forum dan hasil google tetapi saya tidak mengerti. Saya mencoba menambahkan "header('Content-type: text/plain; charset=utf-8');" hampir di mana-mana tetapi tidak membantu.

Tolong bantu :)


person ss777    schedule 15.12.2017    source sumber
comment
baca stackoverflow.com/questions /279170/   -  person Jeff    schedule 15.12.2017
comment
2 kemungkinan masalah di sini: Anda mengirim sesuatu (yaitu beberapa yang kosong) sebelum <?, seperti yang terlihat di sini (meskipun bisa jadi masalah salin & tempel). Mungkin file php itu sendiri tidak dikodekan dalam utf-8   -  person Jeff    schedule 15.12.2017
comment
Anda perlu mengklarifikasi apakah Anda mendapatkan teks kacau dalam respons HTML yang dihasilkan laman Anda, atau dalam email yang Anda kirim, atau keduanya. Itu adalah dua masalah terpisah dengan solusi berbeda   -  person Sammitch    schedule 15.12.2017
comment
Itu ada di pesan email.   -  person ss777    schedule 16.12.2017
comment
Maka menyetel header HTTP tidak akan menyelesaikan masalah, Anda perlu mengonfigurasi PHPMailer untuk menyetel pengkodean UTF8 pada pesan. $mail->CharSet = 'UTF-8'; stackoverflow.com/questions/2491475/   -  person Sammitch    schedule 16.12.2017
comment
Itu berhasil. Terima kasih banyak. :)   -  person ss777    schedule 16.12.2017