я использую MailMimeParser
для анализа всех входящих сообщений электронной почты. Я думал, что после многих лет раздражения из-за регистрируемых ошибок, связанных с неверно закодированными сообщениями электронной почты, наконец-то получил «совершенно надежный» код приложения. И вот этот материал был зарегистрирован сегодня для какого-то входящего электронного письма:
iconv_strlen(): Wrong charset, conversion from `KOI8' to `UCS-4LE' is not allowed:
...
iconv_substr(): Wrong charset, conversion from `KOI8' to `UCS-4LE' is not allowed:
...
iconv(): Wrong charset, conversion from `KOI8' to `UTF-8//TRANSLIT//IGNORE' is not allowed:
Все эти вызовы функций были выполнены MailMimeParser
внутренний код, так что это не код, к которому я все равно могу прикоснуться.
Но почему преобразование из KOI8' to
UCS-4LE 'все равно "не пустят"? Что это хотя бы значит? И, кстати, до сегодняшнего дня я никогда не слышал ни о «КО18», ни о «UCS-4LE». Почему это конвертируется к что все-таки вместо UTF-8?
Для меня все это не имеет никакого смысла. Представьте, если бы это был какой-то «отправленный» код, и клиент или кто-то еще увидел кучу зарегистрированной чуши. Они будут обвинять меня в том, что я не кодирую надежное приложение, но кажется, что существует бесконечное количество крайних случаев, на обнаружение которых уходят месяцы, месяцы или даже годы, поэтому никогда не знаешь, когда можно быть полностью уверенным, что ошибок нет. когда-либо регистрируются.