将内联指定的UTF-8邮件转换为UTF-8文本 [英] Convert inline specified UTF-8 mail subject to UTF-8 text

查看:152
本文介绍了将内联指定的UTF-8邮件转换为UTF-8文本的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想将以下原始邮件转换为普通的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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆