Норвежские персонажи - PullRequest
       10

Норвежские персонажи

0 голосов
/ 27 августа 2009

У меня есть следующий 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']);
}

Когда я получаю сообщение по электронной почте, норвежские символы å, ø и æ становятся à ¥, ø, æ

Что я могу сделать, чтобы показать правильные символы?

Ответы [ 5 ]

6 голосов
/ 27 августа 2009

Похоже, что ваша форма обслуживается как UTF-8, но электронное письмо отправляется как ISO-8859-1 (или другой вариант). Вы можете явно установить кодировку символов отправленных электронных писем, установив заголовок Content-type, например:

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

Установите для этого параметр $additional_headers функции PHP mail() .

1 голос
/ 27 августа 2009

Вы должны установить кодировку в заголовке письма, как это объясняется в php-комментариях к mail () (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);
}
?>
0 голосов
/ 27 августа 2009

Речь идет об отправке электронного письма с норвежскими символами?
Взгляните на SwiftMailer , это отличная библиотека для обработки электронной почты. Настройка кодировки сообщения описана в http://swiftmailer.org/docs/message-charset. (И поскольку utf-8 является настройкой SwiftMailer по умолчанию, вам не нужно ничего делать в вашем случае.)

0 голосов
/ 27 августа 2009

Используйте UTF-8 по всему коду. Для меня эта страница была очень полезной.

0 голосов
/ 27 августа 2009

Я думаю, что эти символы имеют кодировку UTF8, поэтому вы можете использовать функцию utf8_decode , чтобы показать их правильно

...