一个接收邮件乱码的问题 接收邮件主题是乱码,如下图=?Big5?Q?brown6065ab_=B7Q=A6V=A7A=B1=C0=C2=CB=B3o=A5=F3_eBay_=AA=AB=AB~?=请问如何,显示正常字符,显示正常字符应该是:brown6065ab 想向你推薦這件 eBay 物品 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 本帖最后由 xuzuning 于 2011-07-09 19:32:01 编辑 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 ; } 百度的搜索拼音联想功能是大致上的原理是怎样的呢 谢谢! 怎么根据smarty模板中定义的数字获取相应的新闻条数? php中td里可以用textarea么? 请教一个jquery.ajax的问题。 如何把排名查询出来 mysql的 INDEX 类型的键名和字段有何区别? 在线投票系统里创建基本图像问题? 在PHP里面如何实现汉字转换成拼音,这方面的技术 不要让我再失望啦!!!因为我在这里的贴纸都没有什么人回复!!为什么?? 为什么我的PHP语句采用<br/>换行无效?请大神指点! html编辑器中上传的图片怎么删除呢?欢迎进来讨论 mysql_fetch_row(): supplied argument is not a valid MySQL result resource
我博客里面有篇文章,写了如何解决这个问题
主要的代码是下面这个函数 /**
* 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 ;
}