将内联指定的UTF-8邮件转换为UTF-8文本 [英] Convert inline specified UTF-8 mail subject to UTF-8 text
问题描述
我想将以下原始邮件转换为普通的UTF-8文本:
I want to convert the following raw mail subject to normal UTF-8 text:
=?UTF-8?B?UmU6ICMyLUZpbmFsIEFjY2VwdGFuY2UgdGVzdCB3aXRoIG5ldyB0ZXh0IHdpdGggU2xvdg ==?= =?UTF-8?B?YWsgaW50ZXJwdW5jdGlvbnMgIivEvsWhxI3FpcW + w73DocOtw6khxYgi?=
=?UTF-8?B?UmU6ICMyLUZpbmFsIEFjY2VwdGFuY2UgdGVzdCB3aXRoIG5ldyB0ZXh0IHdpdGggU2xvdg==?= =?UTF-8?B?YWsgaW50ZXJwdW5jdGlvbnMgIivEvsWhxI3FpcW+w73DocOtw6khxYgi?=
真正的文字是(是的,里面有一些疯狂的变音符号):
The real text for that is (yes, there are some crazy diacritics in it):
回复:#2-最终接受度测试,带有斯洛伐克语"+ľščťžýááíé!ň"的新文字
Re: #2-Final Acceptance test with new text with Slovak interpunctions "+ľščťžýáíé!ň"
我处理邮件主题的方式:
The way I handle mail subjects:
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 ==?
=?UTF-8?B?UmU6ICMyLUZpbmFsIEFjY2VwdGFuY2UgdGVzdCB3aXRoIG5ldyB0ZXh0IHdpdGggU2xvdg==?=ak interpunctions "+ľščťžýáíé!ň"
因此您可以看到,主题的第二部分/第二行是正确的.
So as you can see the second part/line of the subject is converted correclty.
要正确转换第一部分我需要更改什么?
What do I need to change to convert the first part correctly?
推荐答案
mb_internal_encoding("UTF-8");
echo mb_decode_mimeheader($mime);
- 演示 http://codepad.viper-7.com/a9l4IA
- Demo http://codepad.viper-7.com/a9l4IA
这篇关于将内联指定的UTF-8邮件转换为UTF-8文本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!