![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| $дмитрий |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1037 Регистрация: 19.6.2004 Репутация: 17 Всего: 45 |
Принимаю почту через поток ввода, перекодирую письмо из utf-8 в cp1251 с помощью iconv
Заметил интересный баг Если в Subject будет буква верхнего регистра "И" или "Э", то iconv возвращает обрезанный текст Пример, как должно быть
Как обрезается письмо
Теперь убираем букву "И" и получаем
Убираем букву "Э", письмо нормально конвертируется После серии экспериментов выяснилось следующие: 1. Из всего алфавита глючат именно эти буквы, причем конкретно с Subject, в других заголовках такой проблемы нет 2. Тело письма также конвертируется нормально с любыми буквами Причина происходящего? |
||||||
|
|||||||
| $дмитрий |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1037 Регистрация: 19.6.2004 Репутация: 17 Всего: 45 |
iconv считает это Detected an illegal character in input string, чем не угодили ему эти буквы?
|
|||
|
||||
| bobik02 |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 451 Регистрация: 26.11.2007 Репутация: 2 Всего: 14 |
Только что проверил на линуксе с iconv (GNU libc) 2.3.6.
Например:
1.txt
Отработало без каких либо ошибок и предупреждений. Правда через функции php не пробовал. -------------------- Have a nice day |
||||
|
|||||
| $дмитрий |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1037 Регистрация: 19.6.2004 Репутация: 17 Всего: 45 |
bobik02, если файлы конвертить или строчки все работает, проблема именно в поточной перекодировке
|
|||
|
||||
| bobik02 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 451 Регистрация: 26.11.2007 Репутация: 2 Всего: 14 |
Тогда странное поведение. Ищи.
Можно поток перенапрвлять в файл потом кодировать, что криво и накладно, или с //TRANSLIT заюзать что тоже плохо. А можно еще и отказаться от iconv и заюзать функцию перекодировки. аля http://mihalytch.org.ua/programming/php/co...p1251-utf8.html http://yapro.ru/web-master/php/psevdo-iconv.html Точно stdin ? Это сообщение отредактировал(а) bobik02 - 19.11.2011, 00:59 -------------------- Have a nice day |
|||
|
||||
| Lols |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 144 Регистрация: 21.10.2011 Репутация: нет Всего: нет |
Странно,у меня этого бага нет. вы нашли причину?
|
|||
|
||||
| $дмитрий |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1037 Регистрация: 19.6.2004 Репутация: 17 Всего: 45 |
bobik02, вчера проверял на самодельных функциях перекодировки, результат примерно тот же. Спотыкается на тех же буквах(а значит буквах реально кривые, кто их портит неясно)
Lols, продолжаю искать причину уже ради спортивного интереса ) Кому интересно по экспериментировать, вот код: php.ini
mail.php
send.php
Файлы должны быть в кодировке utf-8 Это сообщение отредактировал(а) $дмитрий - 19.11.2011, 13:54 |
||||||
|
|||||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |