Как получить в теле EMAIL message кириллицу?

IgoRod

Guest
Как получить в теле EMAIL message кириллицу?

ФЛэш- мое основное занятие, посему прошу простить з а ламерство...
Отправляю уведодмление на мэйл клиента-
Как добиться корректного отображения кириллицы в теле мэйл сообщения в Outlook например? Пользователю приходит сообщение о получении скажем открытки (для начала), в "subject" and "From" я добился корректного отображения (KOI8-R), однако в теле умляуты, пока не выбирается UTF-8. Я хотел бы не обременять юзера... При этом мессага из PHP отправляемая, сотоит из переменной UTF-8(флэш эту кодировку поддерживает) и текста , который я хотел бы жестко забить в киррилице прямо в PHP. Кириллицу прописать не могу в PHP - ругается, переменная приходит умляутами, если не выбрать UTF-8 юзеру.
Что сделано: установил на хосте libiconv,
Как решить мой вопрос?- iconv("ISO-8859-1", "UTF-8", "This is a test." Чем-то подобным? Я читал просто не могу разобраться.
поиск не дал.
 

IgoRod

Guest
THNX

ВСЕ ОК! СПАСИБО. НЕПОНЯТНО ТОЛЬКО ОДНО ОСТАЛОСЬ ЮЗАЛ ICONV ("UTF-8","w",$str) и до вопроса - но не работал!
Юзал также:

function utf8win1251($s){
$out="";$c1="";$byte2=false;
for ($c=0;$c<strlen($s);$c++){
$i=ord($s[$c]);
if ($i<=127) $out.=$s[$c];
if ($byte2){
$new_c2=($c1&3)*64+($i&63);
$new_c1=($c1>>2)&5;
$new_i=$new_c1*256+$new_c2;
if ($new_i==1025) $out_i=168; else
if ($new_i==1105) $out_i=184; else $out_i=$new_i-848;
$out.=chr($out_i);
$byte2=false;}
if (($i>>5)==6) {$c1=$i;$byte2=true;}
}
return $out;}

тоже ни в какую. И вдруг -раз и пошло. Ничего практически не менял.
но теперь два вышеприведенных метода работают . объяснений так и не нашел траблу, а жаль...

##correct code#########################
$FrName=iconv("UTF-8","KOI8-R",$FromName);
##or this
$t=utf8win1251($FromName);
$ss=convert_cyr_string($t,'w','k');
############################
спасибо за помощь
 

SiMM

Новичок
Re: THNX

Автор оригинала: IgoRod
ЮЗАЛ ICONV ("UTF-8","w",$str) и до вопроса - но не работал!
Потому что нет в природе кодировки w. Есть кодировка Windows-1251, а w - нету.
 

IgoRod

Guest
...European languages
ASCII, ISO-8859-{1,2,3,4,5,7,9,10,13,14,15,16}, KOI8-R, KOI8-U, KOI8-RU, CP{1250,1251,1252,1253,1254,1257}, CP{850,866}, Mac{Roman,CentralEurope,Iceland,Croatian,Romania}, Mac{Cyrillic,Ukraine,Greek,Turkish}, Macintosh ...-

отсюда http://www.gnu.org/software/libiconv/ ;
где "WINDOWS-1251"? "CP" вижу :)))).

К тому же второй метод работает у меня как нистранно,
и вот вопрос тогда, если (что в принципе согласен -безграмотность :))-
если при iconv(..) указан неверный параметр разве скрипт продолжит работу,:)
я проверю еще раз. но работало факт.
 

neko

tеam neko
это круто сначала из утф в кои, а потом из кои в сп1251
 

SiMM

Новичок
Автор оригинала: IgoRod
где "WINDOWS-1251"? "CP" вижу :)))).
И что же вам могло помешать использовать CP1251? Почему вы вначале лезете на форум, а уже потом - в мануал и т.п.?
К тому же второй метод работает у меня как нистранно
Есть как минимум два способа решения любой задачи. Один из них может быть простым и естесственным, а другой - через ж...
если при iconv(..) указан неверный параметр разве скрипт продолжит работу,:)
А почему он не должен продолжать работу при нефатальных ошибках?
 

IgoRod

Guest
-----------------------------------------------------------------------------

И что же вам могло помешать использовать CP1251? Почему вы вначале лезете на форум, а уже потом - в мануал и т.п.?
--------------------------------------------------------------------------------
я вообще никуда не лезу, лезут сами знаете на кого, кто дома ждет не дождется. Далее, у вас по 1500 постингов и вы PHP программер скорее всего. Я же флэшееер, но это мне не помешало решить эту задачу, что, не уверен, выйдет увас при написании классов для RIA. А обращаюсь к вам, великим, чтобы потешить ваше самолюбие, да и поток нового большой, это ж понятно...так пойдет :))))?
--------------------------------------------------------------------------------

Есть как минимум два способа решения любой задачи. Один из них может быть простым и естесственным, а другой - через ж...
--------------------------------------------------------------------------------
вы смею вас заверить так же попадете в ту же ж.. если сходу "создадите", например, www.2advabced.com
----------------------------------------------------------------------------

А почему он не должен продолжать работу при нефатальных ошибках?
-----------------
-а потому что критерием работы является ожидаемый результат (иногда :)), коего не наблюдается при ошибочном подходе -ИМХО.

а кириллицу в кириллицу конвертируют для того чтобы когда вам пришла почта вы видели не умляуты :).А хочется поумничать (может и правда много знаете)- давай на флеш форум, в AS2 ...

И еще, без эмоций уже. Я виноват, что неправильно написал в заголовке поста iconv ("UTF-8", "W",$str), так как и сейча пишу по памяти. подняв источник свой я увидел что 'w' параметр юзают при конвертация кириллицы в кириллицу. только и всего.
Спасибо. ВСе это в ведро (сорри админ за работу). но где ответить-то вам?
 

SiMM

Новичок
Автор оригинала: IgoRod
А почему он не должен продолжать работу при нефатальных ошибках?
-----------------
-а потому что критерием работы является ожидаемый результат (иногда :)), коего не наблюдается при ошибочном подходе -ИМХО.
Потому что это должен решать сам программист (считать эту ошибку фатальной или нет), и возможность решить эту проблему него есть, благодаря тому, что (цитирую ман по iconv) Returns the converted string or FALSE on failure.
а кириллицу в кириллицу конвертируют для того чтобы когда вам пришла почта вы видели не умляуты :).
Вопрос не в том, зачем вы конвертируете кириллицу в кириллицу, а в том, зачем вы конвертируете UTF-8 в кириллицу, а затем опять в кириллицу, когда это делается сразу и в одно действие.
PS: остальной бред, не относящийся к делу, я позволил себе пропустить мимо ушей ;)
 

maxim

Новичок
Если в итоге ты хочешь отправить в виндоус-1251
то может проще сделать так

$to = '[email protected]';
$subject = "Feedback Form ";
$message = htmlspecialchars($message, ENT_QUOTES) . "\n";
$headers = '';
mail($to, $subject, $message, $headers);
при условии что в тэге хеад указана кодировка виндоус-1251

Самый простой вариант. Только не выкладывай так в сеть.
 

IgoRod

Guest
maxim: спасибо!
если кратко: во из флэш формы пришла UTF-8, я ее посредством PHP записал в созданный

файл, далее сгенерил пост - извещение получателю. При этом мне треба было чтобы н а

большинстве компов при открытии сразу читалось по-русски "От кого" и "сабж", чтоб не в

корзину из-за нечитаемости. KOI8-R самая распространенная, отсюда и перекодировка

переменных +кодирование прописанных жестко в PHP руских фраз+перекодированных этих

самых переменных.

Я все сделал - использовал iconv() для переменных в UTF-8.Перекодировал из UTF-8 в

KOI8-R.

2SiMM. cпасибо за совет:

http://ru2.php.net/manual/ru/function.convert-cyr-string.php >описание>:
"string convert_cyr_string ( string str, string from, string to)
Эта функция преобразует строку str из одной кириллической кодировки в другую.

Аргументы from и to задают входную и выходную кодировки соответственно, и состоят из

ОДНОГО (!) символа. Поддерживаются следующие кодировки:
k - koi8-r
w - windows-1251
..."
...как видите есть такое определение кодировки.
Если я написал, что запутался -так и есть, для чего написано было про iconv сразу? для

того, чтобы поняли - я читал, а не студентствую, т.к. сам не люблю ленивых. Кириллицу

в кир. потому что НЕ работал iconv!(а не работать он мог и из-за неподключеного модуля

libiconv вполне) а функцию (UTF8toWIN1251) я не разбирал, чтобы поменять там внутри

что-то. Получил w1251 от нее- перекинул в KOI8-R- все! Ну не изящно, самому не

нравится :), так ведь и не ползуюсь уже.
И вообще зачем тогда convert-cyr-string.php? -это же кир в кир :)))(на хлп в оригинале

не отправлять просьба.).
благодарю...
 

SiMM

Новичок
Автор оригинала: IgoRod
И вообще зачем тогда convert-cyr-string.php? -это же кир в кир :)))(на хлп в оригинале
Для чего она служит - написано в мануале, а если уж ты преобразуешь что-то сторонней функцией, то использовать связку - как мёртвому припарка
 

IgoRod

Guest
в каком смысле - мертвому припарка? самому надо корректно ее написать? но разве не допустимо использовать класс, функцию, которая при таких-то на входе параметрах выдает то-то на выходе+свзять с чем-то еще? это же и написано для не понимающих глубоко. Вы же при хорошем автомобиле не знаете, в деталях работу блока какого нибудь, TCS, ABS ? жмете - не пробуксовывает, тормозите не несет, и на этой основе строите свои гонки скажем, что впечатляет. Итолько потом понимаете, что -да хорошо бы знать все.
Другое дело со временем все понял - сам пишешь пользовательские функции точно под задачу (и только к этому надо стремится, мое мнение-потому и раздражает что принимают за полного бездельника). А пока - да, так вот по уродски в общем. на все же время надо. Я не велик конечно в AS, далеко, но тоже вижу полное дилетанство порой, но люди просто учатся и я отделяю постинг "...а как на флэше сайт сделать?" от постинга с кодом и вопросом узким по существу - я понимаю чел учится. Мне же просто открыточку (учебную)отладить в части PHP (поскольку неверно еще и за деньги это делать не зная как), и представьте когда я это сделаю если пролопачу все - года через два? А НГ -вот он. Потому и не зазорно по моему юзануть из соседней области скрипт и спросить как. Теи более что я уже узнал и успешно поставил Апач, PHP и с большим инт. про все это читаю. просто время-время.
 
Сверху