Здравствуйте, гость ( Вход | Регистрация )

![]() ![]() |
11.2.2007, 22:33
Сообщение
#1
|
|
![]() Старожил Сообщений: 229 Регистрация: 11.2.2007 Пользователь №: 58 483893 Репутация: 4 ![]() |
Отправка писем в правильной кодировке на PHP
Как отсылать письма с помощью PHP в правильной кодировке? Ваша обычная ситуация: после отправки письма с русскими буквами, на почту людям приходит абракадабра. А все дело в том, что для почты у нас принято использовать кодировку KOI8-R, а для веба - Win-1251 (ANSI) - так, и выходит - мы шлем с сайтов в win-1251, а почтовые программы открывают его как KOI8-R... Выходов из ситуации хватает. Начиная, можно на самой веб странице можно использовать кодировку KOI8-R. Но я бы не советовал этого не делать - у некоторых посетителей могут возникнуть с кодировкой на самой странице. Так что оставим этот метод для ламеров, а применим более изящный, на PHP. Итак, что же можно сделать? Первое что приходит в голову - а не проще ли перекодировать само сообщение? И в правду, нет нечего проще. Тем более в PHP предусмотрена стандартная процедура - convert_cyr_string(string $str, string $from, string $to); как Вы уже, наверное, догадались, функция перекодирует текст, содержащийся в переменной $str из кодировки $from в кодировку $to. Указание кодировки происходит посредством символов латинского алфавита, вот доступные параметры и соответствующие им кодировки: k KOI8-R w Win-1251 i ISO8859-5 a X-CP866 d X-CP866 m X-Mac-Cyrillic Как видно из таблицы, в нашем случае, перед отправкой сообщения, содержащегося в переменной $msg, его нужно перекодировать из w в k (из Win-1251 в KOI8-R), это выглядит так: Код $msg = convert_cyr_string ($msg,w,k); вот и все, теперь можно спокойно отсылать наше письмо. |
|
-------------------- | |
![]() ![]() |
| Invision Power Board © 2007- IPS, Inc. | Сейчас: 6.2.2012, 0:34 |