|
|
|
| кусок заголовка
[code=?koi8-r?B?7/Du4uXw6uA=?=][/code]
function decode_mime_string($subject) {
$string = $subject;
if(($pos = strpos($string,"=?")) === false) return $string;
while(!($pos === false)) {
$newresult .= substr($string,0,$pos);
$string = substr($string,$pos+2,strlen($string));
$intpos = strpos($string,"?");
$charset = substr($string,0,$intpos);
$enctype = strtolower(substr($string,$intpos+1,1));
$string = substr($string,$intpos+3,strlen($string));
$endpos = strpos($string,"?=");
$mystring = substr($string,0,$endpos);
$string = substr($string,$endpos+2,strlen($string));
if($enctype == "q") $mystring = quoted_printable_decode(ereg_replace("_"," ",$mystring));
else if ($enctype == "b") $mystring = base64_decode($mystring);
$newresult .= $mystring;
$pos = strpos($string,"=?");
}
$result = $newresult.$string;
if(ereg("koi8-r", $subject))
{
$result = convert_cyr_string($result, "k", "w");
$result = iconv("windows-1251","utf-8",$result);
}
if(ereg("KOI8-R", $subject))
{
$result = convert_cyr_string($result, "k", "w");
$result = iconv('windows-1251','utf-8',$result);
}
return $result;
}
|
данная функция декодирует заголовки почты в читабельный вид
у меня кодировка в utf-8, так вот если письмо приходит в windows-1251? то как перекодировать в utf-8. Пробывал так
if(ereg("windows-1251", $subject))
{
$result = iconv('windows-1251',"utf-8",$result);
}
|
но есть один баг, если content-type: text/plain то перекодировка проходит нормально, а если же content-type: text/html то кодировка не проходит и все символы заменяются на знаки вопросов. | |
|
|
|
|
|
|
|
для: scva
(24.12.2010 в 13:17)
| | Вы что-то путаете.
методика кодирования и кодовая страница полей заголовка письма (Subject и другие поля) в общем случае никакне связаны с методикой кодирования и кодовой страницей содержимого (Content-Type). | |
|
|
|
|
|
|
|
для: Trianon
(24.12.2010 в 13:35)
| | верно, но как мне отбражать заголвок windows-1251 в utf-8 | |
|
|
|
|
|
|
|
для: scva
(24.12.2010 в 13:45)
| | если браузер переключить на кодировку кирилица windows-1251, то они отбражаются нормально.
Перформулирую фразу в первом посте "данная функция приводит заголовки почты в читабельный вид" | |
|
|
|