Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отправить письмо с помощью <a href="mailto:..... Не совпадают кодировки 
:(
    Опции темы
DangBoy
Дата 7.5.2008, 20:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 1.8.2007

Репутация: нет
Всего: нет



В общем проблема такая. Сделать ссылку для отправки письма, и в теле письма есть русские буквы. Куда уж проще. Но дело в том что не правильно определяются кодировки в почтовом клиенте Outlook(речь в дальнейшем пойдет о нем) при открытии ссылки.
Конкретизирую проблему:
- Если к тексту применить url-encode, тогда ни FF ни IE корректно данные не отображают в Outlook
- Если текст передавать просто как русские буквы то IE их обрабатывает и корректно передает в почт. клиент, чего не скажешь о FF
- Так же IE отрабатывает при простой замене " " на "%20" - тоже все хорошо в IE
- Еще, если передавать русские буквы закодированные в 16-ой форме у IE проблем не возникает.
Итого: Необходимо чтобы все браузеры, и все почтовые клиенты принимали русские буквы в теле письма.
P.S. может и не нужно, но скажу использую Utf-8. Да еще FF вместе с "The Bat" нормально отрабатывают.
За ранее благодарен.
PM MAIL   Вверх
Ghirik
Дата 9.5.2008, 08:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 919
Регистрация: 26.3.2007

Репутация: 13
Всего: 20



Если Вы начинающий спамер, то я не давно отправлял вам подобные строки  с персонального ящика на [email protected] 
Но если вы делаете страничку для отправки с сайта корреспонденции, то дайте ссылочку на енто место. Как то не хочется помогать людям, имеющим настроение гадить.


--------------------
Отдадим всё клиенту, пускай его машина мучается...

PM MAIL   Вверх
Ghirik
Дата 9.5.2008, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 919
Регистрация: 26.3.2007

Репутация: 13
Всего: 20



Хорошо, прочитал личку...

Вы слышали о добавочной сигнатуре в файлах UTF-8?

Посмотрите файлы которые Вы отправляете, например, этим блокнотом. Им можно открыть любой файл и потом поменять кодировку. Сохраните без сигнатуры и отправляйте. Очень мало информации с вашей стороны... письмо то где создается? Прямо на странице? Всё-же, если вы это не для спама, то можно и ссылку дать... наверное..


--------------------
Отдадим всё клиенту, пускай его машина мучается...

PM MAIL   Вверх
DangBoy
Дата 9.5.2008, 13:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 1.8.2007

Репутация: нет
Всего: нет



Дело в том что сайта пока нету, он в разработке, мы его тестируем пока на апаче. О добавочной сигнатуре я не слышал. Да письмо создается прямо на сайте, т.е. пользователь вводит свои личные данные(в частности для лицензирования продукта) и отправляет их нам. Немного не понятно "Сохраните без сигнатуры и отправляйте". Через этот блокнот сохранять и отправлять? как-то непонятно как это реализовать...
PM MAIL   Вверх
Ghirik
Дата 9.5.2008, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 919
Регистрация: 26.3.2007

Репутация: 13
Всего: 20



Цитата

Да письмо создается прямо на сайте


Значит, дело в php, возможно, при работе с базой... Опять же, мало инфы... сидим гадаем... Могут быть разные причины, например Апач настроен на кривую отдачу мыла или ещё чего....

Если ваша страница имеет нормальное оформление, то с неё должно всё нормально отдаваться серверу. Я имею ввиду тип документа.

Например так:

Код

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />


или так:

Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Language" content="en-us">


Добавлено через 5 минут и 12 секунд
Про сигнатуру... Это просто пара дополнительных байт, которые обычно мешают...  Т.е. UTF-8 бывает двух видов, с этими двумя байтами или без них. А указанный блокнот очень рекомендую....

Это сообщение отредактировал(а) Ghirik - 9.5.2008, 13:58


--------------------
Отдадим всё клиенту, пускай его машина мучается...

PM MAIL   Вверх
DangBoy
Дата 9.5.2008, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 1.8.2007

Репутация: нет
Всего: нет



Вообще-то мы работаем с JS, и проблем с базой тоже нету. Тип документа тоже правильный, HTML верно настроен. Все данные правильные перед формированием тега <a href="mailto:.. а вот уже в почтовый клиент они приходят не верными
Я не знаю где проблема. Мне кажеться что в несовместимости отдельных браузеров и отдельных почтовых клиентов. 

Это сообщение отредактировал(а) DangBoy - 9.5.2008, 14:05
PM MAIL   Вверх
Ghirik
Дата 9.5.2008, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 919
Регистрация: 26.3.2007

Репутация: 13
Всего: 20



Цитата

Вообще-то мы работаем с JS, и проблем с базой тоже нету.


JavaScript почту не отправляет, это косяк php функции.

Добавлено через 6 минут и 7 секунд
Я понимаю, почему у Вас имеются сомнения. Браузеры имеют разную способность распознавать кодировку, но это только в том случае, если кодировка указанная в документе не соответствует реальной. Некоторые браузеры могут её распознать правильно, а некоторые верят указанному заголовку. Но, однозначно документ приходит кривой. JavaScript не может его искривить, проблема точно зарыта в php. Хотя... Вы же не показали код.


--------------------
Отдадим всё клиенту, пускай его машина мучается...

PM MAIL   Вверх
DangBoy
Дата 9.5.2008, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 1.8.2007

Репутация: нет
Всего: нет



Ghirik, я понимаю что я было бы не плохо отобразить код, но исходники щас на работе, а я дома smile Сегодня же выходной smile Кстати с праздником!!!
Вернемся к делу. Я еще раз напоминаю проблему, в самом первом посте я постарался максимально объяснить ее. Там написаны варианты НЕ правильной работы. В остальных же случаях правильно. 
Код

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Language" content="en-us">
<body>
<a href="mailto:[email protected]?subject=new&body=TEXT">e-mail</a>
</body>
</head>
</html>

необходимо чтобы на месте TEXT был любой текст который корректно отображался во всех браузерах и почтовых клиентах. Я специально привел этот очень просто пример. Потомучто даже на нем, мне не удалось добиться правильного отображения русских букв используя FF и Outlook
PM MAIL   Вверх
Ghirik
Дата 9.5.2008, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 919
Регистрация: 26.3.2007

Репутация: 13
Всего: 20



Но в пиведенном вами примере нет русских буков?...
Они где будут? Вместо TEXT?

Если вместо TEXT, то при чем сдесь JavaScript.... Это же практически GET-запрос... Ещё раз говорю, дайте прямо с буквами... русскими... В котором месте буквы то сикоракятся? smile

Добавлено через 2 минуты и 48 секунд
Хорошее слово сикоракятся... А если перевести на английский...  smile 


--------------------
Отдадим всё клиенту, пускай его машина мучается...

PM MAIL   Вверх
DangBoy
Дата 9.5.2008, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 1.8.2007

Репутация: нет
Всего: нет



Цитата

необходимо чтобы на месте TEXT был любой текст

Да именно на месте TEXT... да и только сейчас до меня дошло что я тему не в том месте запостил((
<a href="mailto:[email protected]?subject=new&body=сикоракятся">e-mail</a> хоть даже так smile
Вот блин, мне правда не удобно что я тему не в том месте запостил....
Но вопрос остался smile т.е. любым способом вместо TEXT вставить текст хоть закодированный url-enicode, хоть просто русский текст, хоть каким способом, чтобы он корректно отображался в почтовом клиенте.

Кстати, может сразу посоветуете куда ее перенести, а то правда лежит не на своем месте smile сорри что я ее сюда запостил...

Это сообщение отредактировал(а) DangBoy - 9.5.2008, 15:16
PM MAIL   Вверх
Ghirik
Дата 9.5.2008, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 919
Регистрация: 26.3.2007

Репутация: 13
Всего: 20



В вормате запросов я слаб... просто сегодня праздник... Завтра и здесь подскажут.

Подождем.... и маму и папу... всех... smile


--------------------
Отдадим всё клиенту, пускай его машина мучается...

PM MAIL   Вверх
DangBoy
Дата 9.5.2008, 15:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 1.8.2007

Репутация: нет
Всего: нет



Т.е считаете ее не надо перенести из JS в какие -нибудь общие вопросы о web?
PM MAIL   Вверх
Ghirik
Дата 9.5.2008, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 919
Регистрация: 26.3.2007

Репутация: 13
Всего: 20



Дак уже почти всё выяснили... Умные придут и всё расскажут smile 

Ну а потом, модератор решит...


--------------------
Отдадим всё клиенту, пускай его машина мучается...

PM MAIL   Вверх
Ghirik
Дата 11.5.2008, 13:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 919
Регистрация: 26.3.2007

Репутация: 13
Всего: 20



Умные люди потому, наверное, и умные, что в праздники отдыхают.

Короче, попробовал сам разобраться, кое что получилось.

Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title></title>
<script type="text/javascript">
<!--
function encode(sValue) {
    var    text = "", Ucode, ExitValue, s;
    for (var i = 0; i < sValue.length; i++) {
        s = sValue.charAt(i);
        Ucode = s.charCodeAt(0);
        var Acode = Ucode;
        if (Ucode > 1039 && Ucode < 1104) {
            Acode -= 848;
            ExitValue = "%" + Acode.toString(16);
        }
        else if (Ucode == 1025) {
            Acode = 168;
            ExitValue = "%" + Acode.toString(16);
        }
        else if (Ucode == 1105) {
            Acode = 184;
            ExitValue = "%" + Acode.toString(16);          
        } 
        else if (Ucode == 32) {
            Acode = 32;
            ExitValue = "%" + Acode.toString(16);          
        } 
        else if (Ucode == 10){
            Acode = 10;
            ExitValue = "%0A";
        }
        else {
            ExitValue = s;          
        }
        text = text + ExitValue; 
    }      
    return text; 
}
//-->
</script>
</head>
<body>
<p><a id="link" href="mailto:[email protected]">Привет!</a></p>
<p id="p">mailto:[email protected]
</p>
<p><input type="text" id="t1" name="t1" size="20" value="Привет!"></p>
<p><input type="button" value="escape()" name="b1" onclick="alert(escape(document.getElementById('t1').value))"></p>
<p><input type="button" value="encodeURI()" name="b1" onclick="alert(encodeURI(document.getElementById('t1').value))"></p>
<p><input type="button" value="encodeURIComponent()" name="b1" onclick="alert(encodeURIComponent(document.getElementById('t1').value))"></p>
<p><input type="button" value="encode()- this well!" name="b1" onclick="alert(encode(document.getElementById('t1').value))">&nbsp; 
Только эта<span lang="ru"> (рукописная)</span> функция правильно кодирует.</p>
<input type="button" value="Zapihnuti in link" name="b1" onclick="document.getElementById('link').href+='?subject=new&body='+encode(document.getElementById('t1').value);document.getElementById('p').innerHTML=document.getElementById('link').href">
<span lang="ru">&nbsp;Ткнуть сюда, а потом по ссылке.</span>
</body>
</html>


Задача эта, действительно, должна решаться на клиенте. Но в JavaScripte нет готовой функции нормально кодирующей русские символы. Потому народ извращается сочиняя различные варианты кодировки.



--------------------
Отдадим всё клиенту, пускай его машина мучается...

PM MAIL   Вверх
Igor_thief
Дата 20.6.2008, 21:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 112
Регистрация: 12.9.2006
Где: Украина

Репутация: нет
Всего: нет



Ghirik, Спасибо вам большое! Ваш код очень мне помог.
--------------------
В каждом из нас спит гений, и с каждым днем все крепче ...delphigeek.blogspot.com | www.iskomorokh.com 
PM MAIL WWW ICQ YIM MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1857 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.