{
"type": 3,
"encoding": 3,
"ifsubtype": 1,
"subtype": "VND.MS-EXCEL",
"ifdescription": 0,
"ifid": 0,
"bytes": 158344,
"ifdisposition": 1,
"disposition": "attachment",
"ifdparameters": 1,
"dparameters": [
{
"attribute": "filename",
"value": "=?GBK?Q?EQ=3Ffor=3FY578B-1&ampY578B-2=B6=FE=BF=EE=BA=CF=C6=B4&?= =?GBK?Q?nbsp&nbsp=3FJ008798H04A0=3F4281=3F.xls?="
}
],
"ifparameters": 1,
"parameters": [
{
"attribute": "name",
"value": "=?GBK?Q?EQ=3Ffor=3FY578B-1&ampY578B-2=B6=FE=BF=EE=BA=CF=C6=B4&?= =?GBK?Q?nbsp&nbsp=3FJ008798H04A0=3F4281=3F.xls?="
}
]
}
上图是其中一个附件,使用 mb_decode_mimeheader 获取不到真正的文件名,未正确解码的都被标记为 ? ,结果如下:
"EQ?for?Y578B-1&ampY578B-2 二款合拼&nbsp&nbsp?J008798H04A0?4281?.xls"
其中 ? 其实是下划线 _
所以请问如何能获取到正确的文件名?
1
Rache1 2022-08-19 11:05:44 +08:00
源文件名是啥呀,不然怎么判断解出来的是不是对得上
|
2
s609926202 OP @Rache1 文件名正确是这个:EQ_for_Y578B-1&Y578B-2 二款合拼 _J008798H04A0_4281_.xls
|
3
reter 2022-08-19 12:44:17 +08:00 via Android
搜索了一下,rfc 2047 规定了邮件里面如何表达非 ascii 编码的文本,你发的文字就是经过 rfc 2047 规则编码的文本。我不懂 php ,但是 https://www.php.net/manual/en/function.imap-mime-header-decode.php 好像可以用
|