Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Кириллица в заголовках письма

Сообщения:  [1-4] 

 
 автор: BinLaden   (03.06.2008 в 00:20)   письмо автору
 
   для: AVS   (03.06.2008 в 00:00)
 

Будет, конечно. base64 проглатывает любые байты.

   
 
 автор: AVS   (03.06.2008 в 00:00)   письмо автору
 
   для: sim5   (02.06.2008 в 19:54)
 

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

   
 
 автор: sim5   (02.06.2008 в 19:54)   письмо автору
 
   для: AVS   (02.06.2008 в 19:48)
 

=?кодировка?способ кодирования?закодированный текст?=

Кодировка может быть любой из списка "windows-1251", "koi8-r", "utf-8" и т.д. Во всех случаях, как правило, кодировка сообщения будет совпадать с кодировкой в которой работает сайт. То есть в большинстве случаев это будет "windows-1251", реже - "utf-8".

Способ кодирования указывает на то, каким именно образом русские символы будут преобразованы в безопасный набор. Способа определяется два: так называемый "Q-encoding" (обозначается одной буквой "Q") и "Base64" (обозначается одной буквой "B").

К сожалению, штатной функции, которая бы могла бы обычную строку преобразовать в Q-encoded текст, в PHP нет, зато есть функция, которая умеет выполнять аналогичное преобразование в Base64. Итак, PHP код правильного создания заголовка темы почтового сообщения может выглядеть следующим образом:

$subject = "=?windows-1251?B?" . base64_encode($_POST["subject"]) . "?=";

Здесь предполагается, что в переменной $_POST["subject"] у вас содержится тема почтового сообщения, записанная по-русски в кодировке windows-1251.

Адрес отправителя или получателя может быть записан в виде "user@example.com" или в виде "Имя пользователя <user@example.com>". Во втором случае имя пользователя необходимо преобразовать так же, как в предыдущем примере. Ниже приведен пример, в котором предполагается, что в переменной $_POST["username"] содержится имя пользователя, а в переменной $_POST["email"] его электронный адрес:

$sender = "=?windows-1251?B?" . base64_encode($_POST["username"]) . "?= <" . $_POST["email"] . ">";

   
 
 автор: AVS   (02.06.2008 в 19:48)   письмо автору
 
 

Здравстввуйте!

Подскажите, как кодировать кириллицу в заголовках письма? Какую функцию для этого применить?

   

Сообщения:  [1-4] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования