Главная » Полезные статьи » Язык PHP » PHP кодировка писем
Распечатать статью

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); вот и все, теперь можно спокойно отсылать наше письмо.

Источник:  i-faq.ru
Вы можете оставить комментарий, или обратную ссылку на Ваш сайт.

Оставить комментарий

Похожие статьи