Как получить кодировку из объекта Zend_Mail_Part? - PullRequest
1 голос
/ 12 июля 2011

Я пытаюсь определить набор символов для объекта Zend_Mail_Part (я читаю электронную почту).Как я могу получить charset информацию?

Я могу получить заголовок типа контента, выполнив следующее:

echo $part->contentType;
# text/plain; charset="iso-8859-1"

Я готов проанализировать информацию charset, еслиэто единственный способ.Просто пытаюсь найти самое чистое решение.

Ответы [ 2 ]

1 голос
/ 12 июля 2011

Вы можете использовать Zend_Mail_Part :: getHeaderField:

$part->getHeaderField('content-type', 'charset');

http://framework.zend.com/apidoc/1.11/_Mail_Part.html#Zend_Mail_Part::getHeaderField()

0 голосов
/ 12 июля 2011

Единственный способ найти charset - это использовать регулярное выражение:

preg_match('/charset="(.+)"$/', $foundPart->contentType, $matches);
$charset = $matches[1];

if ($charset == 'iso-8859-1') {
    $content = utf8_encode($content);
}
...