PHP解码GB2312

时间:2010-12-30 02:49:00

标签: php character-encoding decode gb2312

我正在处理IMAP电子邮件脚本,我在GB2312中编写了一些代码(我假设是中文编码),看起来像=?GB2312?B?foobarbazetc

如何开始使用此字符串?我检查了mb_list_encodings(),但没有列出这个。

2 个答案:

答案 0 :(得分:6)

如果你有base64解码数据,那么使用mbstring或iconv。如果你有原始标题,那么mbstring。

<?php
$t = "\xc4\xe3\xba\xc3\n";
echo iconv('GB2312', 'UTF-8', $t);
echo mb_convert_encoding($t, 'UTF-8', 'GB2312');

mb_internal_encoding('UTF-8');
echo mb_decode_mimeheader("=?gb2312?b?xOO6ww==?=");
?>

答案 1 :(得分:3)

Ignacio用mb_decode_mimeheader()解决了问题的根源,但为了将来参考,这些链接也很有帮助:

我正在使用的特定标题字符串:

$subject = "=?GB2312?B?tPC4tDogUXVvdGF0aW9uIFBJSSBwcm9kdWN0cyA=?= =?GB2312?B?Rk9CIFNoYW5naGFpIG9yIE5pbmdibyBwb3J0?="

这需要

的页眉
<meta http-equiv="content-type" content="text/html; charset=utf-8" />

和PHP

mb_internal_encoding('utf-8');
echo mb_decode_mimeheader($subject)."<br />";

输出

主题: Quotation PII products FOB Shanghai or Ningbo port