gpt4 book ai didi

php - 当 Gmail IMAP 具有 utf8 而 Outlook 具有 ISO-8859-7 时,如何读取内容类型 header 并将其转换为 utf-8?

转载 作者:可可西里 更新时间:2023-10-31 22:14:21 26 4
gpt4 key购买 nike

所以我使用 imap 从 gmail 和 outlook 接收电子邮件。

Gmail 像这样编码 =?UTF-8?B?UmU6IM69zq3OvyDOtc68zrHOuc67IG5ldyBlbWFpbA==?=outlook 像这样编码 =?iso-8859-7?B?UmU6IOXr6+ft6er8IHN1YmplY3Q=?=

不幸的是,我还没有找到任何可以帮助我将其变成可读文本的解决方案。相反,我在搞乱:

mb_convert_encoding($body, "UTF-8", "UTF-8"); 

mb_convert_encoding($body, "UTF-8", "iso-8859-7");

但我正在努力寻找解决方案来解决这个问题。

这就是我打开我帐户的 IMAP 的方式(其中有很多 gmail 和 outlook 邮件)

$hostname = '{imappro.zoho.com:993/imap/ssl}INBOX';
$username = 'email@email.com';
$password = 'password';


/* try to connect */
$inbox = imap_open($hostname,$username ,$password) or die('Cannot connect to Zoho: ' . imap_last_error());

/* grab emails */
$emails = imap_search($inbox,'UNSEEN');

有什么帮助吗?

最佳答案

Unfortunately I did not find yet any solution that will help me make this into readable text.

解决方案您的字符串是 base64 编码的。

=?UTF-8?B?UmU6IM69zq3OvyDOtc68zrHOuc67IG5ldyBlbWFpbA==?=

echo base64_decode('UmU6IM69zq3OvyDOtc68zrHOuc67IG5ldyBlbWFpbA==');

打印“回复:νέο εμαιλ 新邮件”

=?iso-8859-7?B?UmU6IOXr6+ft6er8IHN1YmplY3Q=?=

echo base64_decode('UmU6IOXr6+ft6er8IHN1YmplY3Q=');

打印出“Re: subject”

答案是将 base64_decode 与您当前的解决方案结合使用。

识别base64编码文本的方法是将其描述为字母a-z, A-Z,数字 0-9 以及其他两个字符(通常是 +/)并且通常是右填充使用 =

编辑:

抱歉,我已经忘记了问题是从 iso-8859-7 转换为 UTF-8 并使其可见。

<?php
$str = base64_decode('UmU6IPP03evt+SDs3u317OE=');
$str = mb_convert_encoding($str,'UTF-8','iso-8859-7');
echo $str;
?>

结果是“Re: στέλνω μήνυμα”

关于php - 当 Gmail IMAP 具有 utf8 而 Outlook 具有 ISO-8859-7 时,如何读取内容类型 header 并将其转换为 utf-8?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45392562/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com