如何解码windows-874 imap主题?

时间:2014-04-23 14:42:39

标签: imap decode subject

我遇到了imap解码的严重问题。我收到了一封可能在windows-874中编码的电子邮件。这导致整个信件被阅读。我尝试使用iconv('tis-620','utf-8',$txt),但我没有运气。

我试图在任何地方搜索可能有答案,但这似乎是宇宙的第一个问题。 (或者我没有搜索到正确的单词?)

主题是:

Charset:ASCII

  

=?窗口-874 Q + = CB = E9 = CD = A7 = BE = D1 = A1 = C3 = D2 = A4 = D2 = BE = D4 = E0 = C8 = C9 = CA = D3 = CB = C3 = D1 = BA = A7 = D2 = B9 = E4 = B7 = C2 = E 0 = B7 = D5 = E8 = C2 = C7 = E4 = B7 = C2 = A4 = C3 = D1 = E9 = A7 = B7 = D5 = E8   三十   = E2 = C3 = A7 = E1 = C3 = C1 = CA = C7 = D1 = CA = B4 = D5 = CA = D8 = A2 = D8 = C1 = C7 = D4 = B7 = AB = CD = C2 8?= < / p>

所以,请告诉我编码是什么,如果它不是tis-62。如何将其解码为人类语言?

1 个答案:

答案 0 :(得分:0)

最后我找到回家的路。首先,我创建了一个函数来检测给定文本中的任何编码。

function win874($str){
    $win874=strpos($str,"windows-874");
    return $win874;
}

function utf8($str){
    $utf8=strpos($str,"UTF-8");
    return $utf8;
}

然后我转换为php函数:

if(win874($headers->subject)=="0" and utf8($headers->subject)=="0"){
    echo $headers->subject;
}
if(win874($headers->subject)>="1"){
    $subj0=explode("?",$headers->subject);
    echo $subj0[3];
}
if(utf8($headers->subject)>="1"){
    echo imap_utf8($headers->subject);
}

因为带有windows-874的文本总是以“=?windows-874?Q?”开头,所以我使用像“explode()”这样的简单函数从垃圾中提取主要想法。正如我所说,主要想法总是在第三个问号之后。然后我有了这个主题。

但问题仍然存在。我仍然需要将浏览器编码更改为Thai以使文本可读。 (设置&gt;工具&gt;编码&gt;泰语:在chrome中)。有什么建议吗?