Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Кодировка при отправке писем


Автор: Анальгин 11.8.2004, 08:57
У меня есть форма. Сотрудник заполняет поля и жмет "отправить". Письмо до меня доходит, но проблема в том, что прочесть я его не могу. Например "Иванов" доходит как "Èâàíîâ". + Тот текст, что забит в mail (.....) так же не читаем. Где и что поправить? Спасибо.

Автор: chaos 11.8.2004, 08:59
По эксперементируй с функцией
[code]convert_cyr_string[.code]

(PHP 3>= 3.0.6, PHP 4 , PHP 5)
convert_cyr_string -- Convert from one Cyrillic character set to another
Description
string convert_cyr_string ( string str, string from, string to)
This function returns the given string converted from one Cyrillic character set to another. The from and to arguments are single characters that represent the source and target Cyrillic character sets. The supported types are:

k - koi8-r
w - windows-1251
i - iso8859-5
a - x-cp866
d - x-cp866
m - x-mac-cyrillic

Автор: Ignat 11.8.2004, 09:02
mail($to, $subject, $message, "MIME-Version: 1.0\r\nContent-type: text/html; charset=windows-1251\r\n");

http://ru.php.net/manual/ru/function.mail.php

Автор: Анальгин 11.8.2004, 09:13
Ignat спасибо. Все ок.

Автор: MuToGeN 11.8.2004, 10:08
Ну и до кучи...
Код
function koi8Mail($to,$body,$subj,$headers=NULL){
   $body=convert_cyr_string($body,"w","k");
   $subj=convert_cyr_string($subj,"w","k");
   $baseHeaders=Array(
   "Content-type: text/plain; charset=koi8-r",
   "Subject: $subj"
   );
   if($headers==NULL){
       $allHeaders=$baseHeaders;
   }else{
       $allHeaders=array_merge($baseHeaders,$headers);
   }
   mail($to,$subj,$body,implode("\r\n",$allHeaders));
}
То, что сам давно пользую.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)