0

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

我试过到处寻找可能有答案的地方,但它似乎是宇宙的第一个问题。(或者我没有搜索正确的单词?)

题目是:

字符集:ASCII

=?windows-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=E0=B7=D5=E8=C2=C7=E4=B7=C2=A4=C3=D1=E9=A7=B7=D5=E8 30 = E2=C3=A7=E1=C3=C1=CA=C7=D1=CA=B4=D5=CA=D8=A2=D8=C1=C7=D4=B7=AB=CD=C2 8?=

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

4

1 回答 1

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()”这样的简单函数来从垃圾中提取主要思想。正如我所说,主要思想总是出现在第三个问号之后。然后我有了主题。

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

于 2014-04-24T14:43:34.523 回答