2010-12-30 8 views
0

私はIMAP電子メールスクリプトに取り組んでいると私は(私は中国のエンコーディングであると仮定)GB2312にコード化されたいくつかのラインを持っているが、私はこの文字列で作業を開始することができますどのようにこの=?GB2312?B?foobarbazetcPHPデコードGB2312

のように見えますか?私はmb_list_encodings()をチェックし、これはリストに載っていません。

+0

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

とPHP

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

のページヘッダを必要と?なぜGB2312を試してみませんか? –

+0

まあ、そうです:/ 'gb2312_decode()'しかし、その関数は利用できません。正直、私はどこから始めるべきかわからない。 – Ben

+0

[iconv](http://www.php.net/manual/en/function.iconv.php)? – ajreal

答えて

7

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==?="); 
?> 
+0

+1正しい軌道に乗ってくれそうですね、ありがとう。少なくとも私は今働くべきことがあります! :) – Ben

3

イグナシオはmb_decode_mimeheader()で、問題の肉を解決しますが、将来の参考のためにこれらのリンクも役立ちます。

私が働いていた特定のヘッダ文字列with:

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

これは、あなたがUTF-8でGB2312を解読しようとした...出力

主题: Quotation PII products FOB Shanghai or Ningbo port 
+0

これは私が探しているものです。 –