我需要解码一些邮件的主题。我有这个代码
$subject = mimie_text_decode($header->Subject);
function mimie_text_decode($string){
$string = htmlspecialchars(chop($string));
$elements = imap_mime_header_decode($string);
if(is_array($elements)){
for ($i=0; $i<count($elements); $i++) {
$charset = $elements[$i]->charset;
$txt .= $elements[$i]->text;
}
} else {
$txt = $string;
}
if($txt == ''){
$txt = 'No_name';
}
return $txt;
}
当我的主题是这样的时候?UTF-8?Q?C=C3=BAspide?=
它可以正常工作,但是如果我的主题不是UTF-8并且就像这个?Windows-1252?Q?Pro=F3ba?=
它没有显示带有重音的字符,它就会消除一切有重音,即只显示单词,直到出现重音。如果我有这个单词“Más”,它只显示“M”
可以解决什么问题?
由于
答案 0 :(得分:1)
您的代码适用于我,但您编写的编码主题应以=?。
开头使用=?Windows-1252?Q?Pro=F3ba?=
Windows-1252它是由Microsoft创建的另一种非常类似于ISO-8859-15的编码[1]
如果不能为你添加这个=字符作为传递给mimie_text_decode的字符串的第一个元素,请告诉我们你使用的是哪个版本的php。