Не указана кодировка в заголовках сообщений от автоинформатора
Господа,
нужно указывать кодировку не только в заголовке письма, но и во всех служебных строках "Organization", "From" и "Subject", если там используется русский язык, а то ваши сообщения имеют нечитабельный вид (как на скриншоте)
/images/editor/88/3348570121.jpg?1338480416 (это Thunderbird)
/images/editor/fd/3348662038.jpg?1338480775 (а это -- веб-интерфейс, через браузер)
Соответственно, заголовки выглядят так (обратите внимание на выделенные строки -- в них не указана кодировка:
Message-Id:
Content-Type: text/plain; charset=Windows-1251
From: Ñåòü Ëà ГГҐГІ
Reply-To: Ñåòü Ëà ГГҐГІ
Organization: ГЋГЋГЋ Ëà ГГҐГІ Íåòâîðê
To: Ãà ðð³ Äèêèé
Subject: ÓâåäîìëåГГЁГҐ
X-Mailer: PHP/5.3.6
x-aol-global-disposition: S
X-AOL-SCOLL-SCORE: 0:5:69404216:93952408
X-AOL-SCOLL-URL_COUNT: 0
X-AOL-REROUTE: YES
x-aol-sid: 3039ac1d40ce4fc786851b71
X-AOL-IP: 194.50.85.2
X-AOL-SPF: domain : xobot.la.net.ua SPF : none
а правильно должно быть, например, вот так:
From: Andrey Zaborovsky
Newsgroups: ukr.nodes
Subject: Re: =?UTF-8?B?0JrRgNCw0YHQuNCy0L4g0LfQsNC60L7QvdGLINC/0YDQuNC90Lg=?=
=?UTF-8?B?0LzQsNGO0YLRgdGP?=
Date: Wed, 30 May 2012 23:39:57 +0300
Organization: =?UTF-8?B?0YDRg9GB0YHQutC40Lkg0LTQvtC8INGC0L7Qu9C10YDQsNC90YI=?=
=?UTF-8?B?0L3QvtGB0YLQuCDQuNC8LiDQodC+0L3QuCDQnNCw0YDQvNC10LvQsNC00L7QstC+?=
=?UTF-8?B?0Lk=?=
Lines: 25
Message-ID: <
Вот эта строка
Content-Type: text/plain; charset=Windows-1251
в заголовке вашего сообщения относится только к телу письма, но не относится к заголовкам, где нужно явно указывать кодировку в начале строки, если используется русский текст:
Subject: Re: =?UTF-8?B?0JrRgNCw0YHQuNCy0L4g0LfQsNC60L7QvdGLINC/0YDQuNC90Lg=?=
=?UTF-8?B?0LzQsNGO0YLRgdGP?=
Поправьте, а то сообщения от вас имеют достаточно странный вид даже в Тандерберде, умеющем достаточно хорошо справляться с кодировками без посторонней помощи :)
Возможно, в Outlook Express, который считает все неуказанные кодировки -- кодировкой win1251 по умолчанию, все отображается нормально, но в других, правильных :) почтовых клиентах с этим явно проблемы
На самом деле никогда с этим проблем не было, Thunderbird принимает корректно, я так понимаю у Вас какой то линукс.
Вот скриншот семерки для примера
/images/editor/2c/3465334784.png?1338936528
В общем на досуге попробуем поэкспериментировать с этим всем.
В том что вы говорите есть толк.
Нет, машина с линукс у меня только дома (это ноутбук)
А скриншоты в исходном сообщении делались на самой обычной winXP с работы, причем второй скриншот -- это не тандерберд, а вообще веб-интерфейс AOL Mail (через браузер firefox)
Проблема, как я уже говорил, в следующем: если вы посмотрите на сообщения из стандартных виндовых почтовых клиентов, то увидите все корректно.
Но это вовсе не потому, что у вас все правильно, а потому что Майкрософт плюет на стандарты и считает неуказанную кодировку по умолчанию -- кодировкой win1251
В правильных же стандартах кодировку в служебных полях (Subject, From, Organization и т.д.) заголовка письма нужно указывать отдельно, но только тогда, когда там используется текст, отличный от латиницы (т.е. кириллица или что-то иное)
Если там латиница -- кодировку можно не указывать.
Чтобы убедиться, что это так -- посмотрите в groups.google.com заголовки сообщений в той же ukr.nodes :)
Ну или заголовки сообщений, рассылаемых Copiny, например вот заголовок уведомления
From: =?UTF-8?Q?Copiny_=28=D0=A0?= =?UTF-8?Q?=D0=B0=D0=B4=D0=B0_=D0=9B=D0=B0=D0=BD=D0=B5=D1=82=29?= To: andreyzaborovsky@aol.com Message-ID: Subject: =?UTF-8?B?0J7RhNC40YbQuNCw0LvRjNC90YvQuSDQvtGC0LLQtdGCINC6IA==?= =?UTF-8?B?0YLQtdC80LUgItCm0LjRhNGA0L7QstCw0Y8g0YLQtdC70LXQsg==?= =?UTF-8?B?0LjQt9C40L7QvdC90LDRjyDQv9GA0LjRgdGC0LDQstC60LAgRA==?= =?UTF-8?B?LUxpbmsgRElCLTExMCAoLTEyMCki?=
Как видите, все именно так, как я и говорю -- в строках заголовка сообщения кодировка указана отдельно -- в данном случае это UTF-8
/images/editor/91/3471854725.png?1338961996
Наверно я отвык от шрифтов XP, мне показалось что это что то линуксовое.
На XP на моей памяти тоже в принципе проблем не замечалось.
В любом случае посмотрим.
на самом первом скриншоте -- это шрифт Arial Narrow (не все его используют, но я к нему привык)
Кстати, а проблема существовала всегда ?
Насколько я помню, да.
Вот вам скриншоты -- слева Internet Explorer 7.0, справа -- Safari последней версии (5.1.7).
И там и там отображается криво.
/images/editor/12/3477330213.jpg?1338983386
Суть в том, что при правильных заголовках в сообщении, оно должно корректно отобразиться на компьютере с любой операционкой и любыми региональными настройками (хоть китайскими :) и любой кодировкой по умолчанию, установленной в системе).
А в вашем случае оно отображается корректно только на машинах с windows, только с кодировкой по умолчанию win1251 и только в определенных почтовых клиентах.
Поэтому вы и не замечали.
Проверил только что на Suse linux 12.1 через наш web фейс mail.lanet.ua
Тоже все отображает корректно.
вот, как и обещал
desktopbsd# uname -a
FreeBSD desktopbsd 6.3-RC2 FreeBSD 6.3-RC2 #18: Sun Jan 6 07:06:50 UTC root@tinderbox.3c-consulting.lokal:/usr/obj/usr/src/sys/DESKTOPBSDLIV
Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.8.1.11) Gecko/20071223 Firefox/2.0.0.11
Понятное дело, это liveCD, поэтому я не настраивал видеокарту, это дефолтное разрешение экрана.
Как видите, все без изменений.
/images/editor/61/3481121377.png?1338998195
Собственно, по поводу ваших экспериментов с SuSE могу сказать следующее.
Сузи -- это Novel, а Новел всегда был дружен с Майкрософтом и в своем дистрибутиве мог что-то персонально допилить для большей совместимости с windows и ее кодировками (точнее, их автоматическим распознаванием)
Так, например, они всегда делали собственную сборку OpenOffice, которая также входит в дистрибутивы OpenSuSE
Здесь же, как видите, все точно так же, как в других случаях -- русский текст в вашем сообщении (я его выделил) -- не отображается.
Так что все, как в известном анекдоте: у нас пуля из ствола вылетела -- проблемы на вашей стороне :)
Спасибо за подробные баг репорты.
Проблема есть, и похоже дело не в os или почтовых клиентах, дело в почтовых серверах где локаль по умолчанию явно не русская, там это все и проявляется. Проверил сам, заведя себе ящик на Aol и отправил туда уведомление.
Попробуем кодировать заголовки для полного феншуя.
Наверно все таки будем кодировать в 1251, так как база данных биллинга с которой подтягиваются данные в скрипт нотификатора работает в cp1251
ну, собственно, не важно в какой кодировке оно будет кодироваться, важно, чтоб она была указана явно (даже, по идее, она может и не совпадать с кодировкой самого тела сообщения -- если она указана явно, то все должно отображаться корректно)
по поводу "нерусских" серверов -- у меня как-то с ними исторически сложилось еще со времен, когда бесплатные почтовые сервера были редкостью и все пользовались даже не гуглем, который был еще в зачаточном состоянии, а серверами типа @usa.net -- был давно-давно такой..
а продуктами от "национального производителя" (типа ukr.net) исторически не пользуюсь -- не доверяю :)
поэтому и заметил проблему :)
Исправили.
Коментувати
Коментарі на даній сторінці заблоковані!