一个接收邮件乱码的问题

cxxlp 2011-07-09 08:59:53
接收邮件主题是乱码,如下图



=?Big5?Q?brown6065ab_=B7Q=A6V=A7A=B1=C0=C2=CB=B3o=A5=F3_eBay_=AA=AB=AB~?=

请问如何,显示正常字符,显示正常字符应该是:

brown6065ab 想向你推薦這件 eBay 物品
...全文
127 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
只要开心就好 2011-07-09
  • 打赏
  • 举报
回复
http://blog.csdn.net/a82168506/article/details/6267814
我博客里面有篇文章,写了如何解决这个问题
主要的代码是下面这个函数

/**
* decode the subject of chinese
*
* @param string $subject
* @return sting
*/
public function subjectDecode($subject) {
$separator = '=?GB2312';
$encode = strstr($subject,$separator);
if($encode) {
$explodeArr = explode($separator,$subject);
$length = count($explodeArr);
$subjectArr = array();
for($i = 0;$i < $length/2;$i++) {
$subjectArr[$i][] = $explodeArr[$i*2];
if(@$explodeArr[$i*2 + 1]) {
$subjectArr[$i][] = $explodeArr[$i*2 + 1];
}
}
foreach ($subjectArr as $arr) {
$subSubject = implode($separator,$arr);
if(count($arr) == 1) {
$subSubject = $separator.$subSubject;
}
$begin = strpos($subSubject ,"=?") ;
$end = strpos($subSubject , "?=") ;
$beginStr = '';
$endStr = '';
if ($end >0) {
if ($begin > 0) {
$beginStr = substr($subSubject,0,$begin) ;
}
if ((strlen($subSubject) - $end)> 2) {
$endStr = substr($subSubject,$end + 2 , strlen($subSubject)-$end-2) ;
}
$str = substr($subSubject,0, $end - strlen($subSubject) );
$pos = strrpos($str,"?") ;
$str = substr($str,$pos + 1 ,strlen($str)-$pos);
$subSubject = $beginStr . imap_base64($str) . $endStr ;
$subSubjectArr[] = mb_convert_encoding($subSubject,'utf-8','gbk');
}
}
$subject = implode('',$subSubjectArr);
}
return $subject ;
}
bear63 2011-07-09
  • 打赏
  • 举报
回复
收藏。。。
xuzuning 2011-07-09
  • 打赏
  • 举报
回复
这样写
$s = '=?Big5?Q?brown6065ab_=B7Q=A6V=A7A=B1=C0=C2=CB=B3o=A5=F3_eBay_=AA=AB=AB~?=';

$t = explode('?', $s);
$func = strtoupper($t[2]) == 'B' ? 'base64_decode' : 'quoted_printable_decode';
echo iconv($t[1], 'gbk', $func($t[3]));
blizzf99 2011-07-09
  • 打赏
  • 举报
回复
顶贴收藏。

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧