进行Mime header编码的时候 用mb_encode_mimeheader( string str [, string charset [, string transfer_encoding [, string linefeed]]] )函数
charset设置编译显示成的字符集,transfer_encoding指定编译方案(B | Q)默认为”B” (Base64) ;linefeed指定分隔符(\r\n | \n);
不过使用前推荐设置mbstring.internal_encoding如:
ini_set(“mbstring.internal_encoding”,”CP936″);
或者
mb_internal_encoding(“CP936″);
下面是个不错代替mb_encode_mimeheader的函数
//user defined by starboy for correct encoding of mineheader
function my_mb_encode_mimeheader($string, $encoding=null, $linefeed="rn") {
if(!$encoding) $encoding = mb_internal_encoding();
$encoded = '';
while($length = mb_strlen($string)) {
$encoded .= "=?$encoding?B?". base64_encode(mb_substr($string,0,24,$encoding)) . "?=$linefeed";
$string = mb_substr($string,24,$length,$encoding);
}
return $encoded;
}



