![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
|
|||||
|
Регистрация: May 2003
Сообщений: 4
|
Я уже голову сломал с этой прооблемой. Отпраляю почту в PHP скрипт, используя методы getURL и loadVars.send или sendAndLoad. Данные беру из текстовых полей.Все нормально работает, но только если содержимое полей (кому, от кого, сообщение, тема) вводится на английском языке. Если набирать текаст письма по-русски, эти символы приходят в непонятной кривой кодировке. Раскодировать никак не получается. КАК ПОБЕДИТЬ ЭТУ ПРОБЛЕМУ? ПОДСКАЖИТЕ, ЕСЛИ КТО-НИБУДЬ ЗНАЕТ. ![]() |
|
|||||
|
скрипт скорее всего шлет в KOI-8, а флеш передает в winows-1251 (я предполагаю, проверять влом =))
если так, то ты можешь прописать в скрипте перекодировщик с помощью регекспа: str =~ tr/алфавит win-1251 в кодировке Koi-8/АБВГД...ЭЮЯабвгдеё...эюя то есть заменить все "каракули" на "нормальные" буквы вручную. в твоем случае: - посылаешь алфавит скрипту (с маленькими и большими буквами) - получаешь скриптом "каракули" - посылаешь как обычно - получаешь "каракули" и узнаешь какая "каракуля" соответвует какой букве (тк слал алфавит) - дописываешь в скрипте, чтобы он перед отсылкой менял все "каракули" на соотвертвующие буквы ^^^^ это ленивый способ =) а если не влом, то сам разберись где какие кодировки и конверть при необходимости =) что не понятно, спрашивай =) Последний раз редактировалось korkiss; 26.05.2003 в 15:34. |
|
|||||
|
Регистрация: May 2003
Сообщений: 4
|
Вот что мне приходит, когда я шлю такую строку:
абвгдеежзиклмнопрстуфхцчшщ АБВГДЕЕЖЗИКЛМНОПРСТУФХЦЧШ٠абвгдеежзиклмнопСАСБСВСГСДСЕСЖСЗСИСЙ РРРСРТРУРФРХРХРЦРЧРШРЪРЫРЬРЭРЮРЯРаРбРвРгРдРеРжРзРиРй так распознает TheBat, это кодировка Cyrillic (IBM-866/DOS) или так аАаБаВаГаДаЕаЕаЖаЗаИаКаЛаМаНаОаПбЂбЃб‚бѓб„б…б†б‡б?б‰ а*аЎаўаЈа¤аҐаҐа¦а§аЁаЄа«а¬а*а®аЇа°а±аІаіаґаµа¶а·аёа№ Это ISO-8859-5. программы типа TOT-RECODE III вообще не могут найти ни одной комбинации перекодировки. Глухо как в танке. Это не просто несовпадение кодировок KOI-8 и windows-1251. Тут вставляются еще символы между буквами. И их можно было бы вырезать, но в каждом наборе не присутствуют ВСЕ буквы. Можно кое-где увидеть цепочку последовательных букв, но она обрывается, потом где-то начинается снова. Непросто это. Неужели только у меня такая проблема. На каждом углу в Интернете пишут, как из флэша почту отправлять, а что такие проблемы бывают, нигде не сказано. Это я "баран" или никто просто не писал такие приложения? Может кто из профессионалов во флэше поможет? Это что, такая серьезная проблема? Странно, что кроме вашего поста никакой реакции на мой вопрос. В скрипте я поставил кодировку windows-1251. Замена символов одной кодировки на другую тут не поможет. Если бы вопрос был в этом, я бы сам, разобрался. Тем более, уже писал подобный перекодировщик текстов на C++. Но проблема, какя погляжу, гораздо серьезней. Если бы народ писал такие скрипты, то наверное был опыт решения таких проблем. Если можете, подкиньте мыслишку. Спасибо. |
|
|||||
|
Цитата:
Либо работай с юникодными строками. PS Кошмар, на дворе XXI век, а люди про юникод не слышали ![]()
__________________
Wbr, CyberMax |
|
|||||
|
Регистрация: Jan 2002
Сообщений: 1,323
|
System.useCodepage = true; не спасает.
|
|
|||||
|
Регистрация: Jan 2002
Сообщений: 1,323
|
Вроде как-то надо использовать iconv, но у меня после трёх часов попыток что-то не получилось.
__________________
ВКЛЮЧИ МОЗГИ!!! Одноразовых граблей не бывает. На большинство из них уже кто-то наступал. (c) Dindin |
|
|||||
|
Регистрация: May 2003
Сообщений: 4
|
Про Юникоды я слышал. Только не знал, что флэш шлет данные в этой кодировке по умолчанию, поскольку недано в нем работаю. Поэтому и просил помощи.
Когд прочитал пост CyberMax'a нашел в справочном файле эту самую useCodepage. Вот не дошел до этого раздела и в литературе нет этой информации. Надо бы купить книгу потолще по AS )Короче, поставилu setCodepage = true. В процессе поиска решения в РНР-скрипте ставил различные кодировки в $headers, но в рабочем варианте убрал совсем эту строку. Т. е. пытался выдать полученные строки в Юникоде (еще без использования useCodepage), получался полный бред. Так что уберите из РНР кодировку и все будет работать. Кстати, когда скрипт начал работать, перед этим моим последним действием была замена шрифта в динамических полях с OfficinaSansC на простой TimesNewRoman. Вот и думай, что к чему. После того, как добился результата, решил поэкспериментировать с разными кодировками, вариантами РНР-скрипта, шрифтами. Короче, после всего решил вернуть все к работающему коду, но... тщетно. НЕ РАБОТАЛА, СВОЛОЧЬ!!!Все было один к одному. Уже и кэш почистил, и файлы все переименовал, и шрифты менял. Мля, кое-как получилось... Не знаю, что уж и как я сделал, но заработало. Кстати, вообще заметил за флэшем такую особенность. Странный он какой-то, или глюковатый. Спасибо КиберМаксу. Для TTS: этот код будет работать, у меня же получилось. Но не надо забывать про прочие условия. Вот полный текст скрипта на РНР, и мувик. <?php $to = $_POST['to']; $message = $_POST['message']; $namefrom = $_POST['from']; $subject = $_POST['subject']; $headers = "From: "; $headers .=$namefrom; $headers .= "<toTECHSUPPORT@your_server.ru>\r\n"; ini_set('SMTP', 'your_server.ru'); if (mail($to, $subject, $message, $headers)) { // Здесь просто вывожу на экран переменные для контроля echo ('* '); print $to . ' * '; print $namefrom . ' * '; echo $subject . ' * '; echo $message; echo (' *'); echo ('The mail IS SENT'); } else {echo ('The mail IS NOT SENT'); } МУВИК: вставляю в первый фрейм клипа. System.useCodepage = true; button.onRelease = function() { getURL ("http://www.your_server.ru/your_script.php", "_blank", "POST"); } |
|
|||||
|
Регистрация: Jan 2002
Сообщений: 1,323
|
Спасибо, конечно. Но если бы всё было так просто, я бы столько не мучился.
Какая кодировка у тебя получается при просмотре письма аутлуком? |
|
|||||
|
Регистрация: May 2003
Сообщений: 4
|
А кто говорил, что у меня все просто получилось? Почитай сообщения.
Я сам дня 2 бился. Я пользуюсь TheBat! В нем письмо нормально читается в кодировке Cyrillic (Windows-1251). У тебя все еще не получается? ЕСТЬ ЕЩЕ ОДИН МОМЕНТ. Вся эта тема не будет работать если ты ТЕСТИРУЕШЬ КЛИП ИЗ ФЛЭША. Т. е. нужно создать htlm-страничку, вставить в нее клип. И так работать. Не обязательно выкладывать в Интернете, можно с винта. Ты знаешь об этом? Если да, то я не знаю, в чем еще может быть проблема. У меня браузер показывает правильно переменные на русском языке, если включить windows-1251. В хелпе написано, что при использовании useCodepage=true страница будет отображаться в кодировке по-умолчанию. Т. е. если Винда нерусская, то может в этом причина. Тут надо использовать Юникод, но у меня с ним ничего не вышло. Я пробовал, отключая useCodepage, включать в браузере Unicode, но ни хера не было видно. Так что ага... |
|
|||||
|
Регистрация: Jan 2002
Сообщений: 1,323
|
Проблема в том, что у меня сервер автоматически переводит текст из koi8-r в w1251. По любому, даже если текст не в koi8. Вот я и мучаюсь с перекодировкой. Вроде бы надо написать iconv("windows-1251","koi8-r", $message), а ни фига не пашет. Ни так ни по-другому.
|
![]() |
Часовой пояс GMT +4, время: 10:36. |
|
|
« Предыдущая тема | Следующая тема » |
|
|