我想将以下原始邮件主题转换为正常的UTF-8文本:
= ? utf - 8 B ? UmU6ICMyLUZpbmFsIEFjY2VwdGFuY2UgdGVzdCB3aXRoIG5ldyB0ZXh0IHdpdGggU2xvdg = = ?=utf - 8 = ? B ? YWsgaW50ZXJwdW5jdGlvbnMgIivEvsWhxI3FpcW + w73DocOtw6khxYgi ?=
真正的文本是(是的,其中有一些疯狂的变音符号):
Re: #2-最终验收测试,新文本与斯洛伐克标点符号"+ľščťžýáíé!"ň"
我处理邮件主题的方式:
function subject_imapUtf8($str){
$conv = '';
$subParts = preg_split('/['r'n]+/',$str);
for($i=0;$i<count($subParts);$i++){
$conv .= imap_utf8(trim($subParts[$i]));
}
return $conv;
}
对于这个例子:
= ? utf - 8 B ? UmU6ICMyLUZpbmFsIEFjY2VwdGFuY2UgdGVzdCB3aXRoIG5ldyB0ZXh0IHdpdGggU2xvdg = = ?=ak标点符号"+ľščťžýáíé!ň"
所以你可以看到主题的第二部分/行被正确转换。
我需要改变什么来正确转换第一部分?
mb_internal_encoding("UTF-8");
echo mb_decode_mimeheader($mime);
- 演示http://codepad.viper - 7. - com/a9l4ia