=D3=D0=C8=CE=BA=CE=D2=C9=CE=CA=C7=EB=B5=BD=CD=F8=D5=BE=C1=F4=D1=D4=A3=AC= =BB=F2=B4=F2=B5=E7=BB=B0=D7=C9=D1=AF=A1=A3-------------------------------------------------------在网上找了一个转换的,但只能转英文!有中文的地方仍然是这种符号!<span= style=3D""><strong><span style=3D"font-size: 16pt; font-family: =CB=CE=CC= =E5; color: red; font-weight: normal;">=B7=D2=BA=BD=A3=BA<span lang=3D"EN-U= S"><span style=3D""> </span>网上找的转码方法:function encode($c)
{
$len = strlen($c);
$a = 0;
while ($a < $len)
{
$ud=0;
if (ord($c{$a})>=0&& ord($c{$a})<=127)
{
$ud = ord($c{$a});
$a += 1;
}
else if (ord($c{$a}) >=192 && ord($c{$a})<=223)
{
$ud = (ord($c{$a})-192)*64 + (ord($c{$a+1})-128);
$a += 2;
}
else if (ord($c{$a}) >=224 && ord($c{$a})<=239)
{
$ud = (ord($c{$a})-224)*4096 + (ord($c{$a+1})-128)*64 + (ord($c{$a+2})-128);
$a += 3;
}
else if (ord($c{$a}) >=240 && ord($c{$a})<=247)
{
$ud = (ord($c{$a})-240)*262144 + (ord($c{$a+1})-128)*4096 + (ord($c{$a+2})-128)*64 + (ord($c{$a+3})-128);
$a += 4;
}
else if (ord($c{$a}) >=248 && ord($c{$a})<=251)
{
$ud = (ord($c{$a})-248)*16777216 + (ord($c{$a+1})-128)*262144 + (ord($c{$a+2})-128)*4096 + (ord($c{$a+3})-128)*64 + (ord($c{$a+4})-128);
$a += 5;
}
else if (ord($c{$a}) >=252 && ord($c{$a})<=253)
{
$ud = (ord($c{$a})-252)*1073741824 + (ord($c{$a+1})-128)*16777216 + (ord($c{$a+2})-128)*262144 + (ord($c{$a+3})-128)*4096 + (ord($c{$a+4})-128)*64 + (ord($c{$a+5})-128);
$a += 6;
}
else if (ord($c{$a}) >=254 && ord($c{$a})<=255)
{ //error
$ud = false;
}
$scill .= "&#$ud;";
}
return $scill;
}
{
$len = strlen($c);
$a = 0;
while ($a < $len)
{
$ud=0;
if (ord($c{$a})>=0&& ord($c{$a})<=127)
{
$ud = ord($c{$a});
$a += 1;
}
else if (ord($c{$a}) >=192 && ord($c{$a})<=223)
{
$ud = (ord($c{$a})-192)*64 + (ord($c{$a+1})-128);
$a += 2;
}
else if (ord($c{$a}) >=224 && ord($c{$a})<=239)
{
$ud = (ord($c{$a})-224)*4096 + (ord($c{$a+1})-128)*64 + (ord($c{$a+2})-128);
$a += 3;
}
else if (ord($c{$a}) >=240 && ord($c{$a})<=247)
{
$ud = (ord($c{$a})-240)*262144 + (ord($c{$a+1})-128)*4096 + (ord($c{$a+2})-128)*64 + (ord($c{$a+3})-128);
$a += 4;
}
else if (ord($c{$a}) >=248 && ord($c{$a})<=251)
{
$ud = (ord($c{$a})-248)*16777216 + (ord($c{$a+1})-128)*262144 + (ord($c{$a+2})-128)*4096 + (ord($c{$a+3})-128)*64 + (ord($c{$a+4})-128);
$a += 5;
}
else if (ord($c{$a}) >=252 && ord($c{$a})<=253)
{
$ud = (ord($c{$a})-252)*1073741824 + (ord($c{$a+1})-128)*16777216 + (ord($c{$a+2})-128)*262144 + (ord($c{$a+3})-128)*4096 + (ord($c{$a+4})-128)*64 + (ord($c{$a+5})-128);
$a += 6;
}
else if (ord($c{$a}) >=254 && ord($c{$a})<=255)
{ //error
$ud = false;
}
$scill .= "&#$ud;";
}
return $scill;
}
乱码的部份就是邮件数据里的中文!
我想做的就是把这些中文给正常的显示出来!
<p class=3D"MsoNormal" style=3D"background: white none repeat scroll 0% 0%;=
text-align: center; -moz-background-clip: -moz-initial; -moz-background-or=
igin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align=3D"=
center">
<b><span style=3D"font-size: 14pt; font-family: =CB=CE=CC=E5; color: black;=
">=B9=E3=D6=DD</span></b><b><span style=3D"font-size: 14pt; color: black;" =
lang=3D"EN-US">: 020-39955448 / </span></b><b><span style=3D"font-size: 14p=
t; font-family: =CB=CE=CC=E5; color: black;">=C9=EE=DB=DA</span></b><b><spa=
n style=3D"font-size: 14pt; color: black;" lang=3D"EN-US">: 0755-25500501</=
span></b></p>
--
抄一段网上的:
QP编码 规则1:除了换行符,其它任何8位长度的字节必须被表示成一个“=”号加上高四位的十六进制数和低四位的十六进制数,十六进制数是用“0123456789ABCDEF”的ASCII字符码表示,其中“ABCDEF”都必须是大写; 规则2:当8位长度的字节值在33至66(包括33和60),62至126(包括62和126)之间时,直接用该数据对应的ASCII码来表示; 规则3:当8位长度的字节值是9和32时,用该数据对应的ASCII码(9:TAB(HT),32:SPACE)来表示,但若是出现在行尾则必须按规则1进行转换; 规则4:对于CRLF换行符必须用“=0D=0A”来代替; 规则5:QP编码每行不得超过76个字符(不包含最后的“\r\n”两个字符),否则必须换行,换行方法是:在结尾处加上“=\r\n”; 其它:符号“-”不用进行QP编码,所以不要用“-”符号来表示实体之间的分界,最好用“=_”来代替,对于“!”#$[\]^’{|}~”这些字符必须按规则1进行转换.
<p class=3D"MsoNormal" style=3D"background: white none repeat scroll 0% 0%;=
text-align: center; -moz-background-clip: -moz-initial; -moz-background-or=
igin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align=3D"=
center">
<b><span style=3D"font-size: 14pt; font-family: =CB=CE=CC=E5; color: black;=
">=B9=E3=D6=DD</span></b><b><span style=3D"font-size: 14pt; color: black;" =
lang=3D"EN-US">: 020-39955448 / </span></b><b><span style=3D"font-size: 14p=
t; font-family: =CB=CE=CC=E5; color: black;">=C9=EE=DB=DA</span></b><b><spa=
n style=3D"font-size: 14pt; color: black;" lang=3D"EN-US">: 0755-25500501</=
span></b></p>
TEXT;
$p = array('/=([0-9A-F]{2})/', "/=([\r\n]+)/");
$r = array('%$1', '');
echo urldecode(preg_replace($p, $r ,$s));<p class="MsoNormal" style="background: white none repeat scroll 0% 0%; text-align: center; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="center">
<b><span style="font-size: 14pt; font-family: 宋体; color: black;">广州</span></b><b><span style="font-size: 14pt; color: black;" lang="EN-US">: 020-39955448 / </span></b><b><span style="font-size: 14pt; font-family: 宋体; color: black;">深圳</span></b><b><span style="font-size: 14pt; color: black;" lang="EN-US">: 0755-25500501</span></b></p>广州: 020-39955448 / 深圳: 0755-25500501