Web メールから電子メールを読み取り、データをデータベースに保存するためのアプリケーションがあります。ほとんどの作業には PHP の imap ライブラリを使用しています。
問題は、ほとんどの電子メールには複数の文字セット (ほとんどが ISO-8859-1 と UTF-8) があるため、電子メールから文字セットを読み取って、iconv 関数を使用して ISO-8859-1 にデコードする必要があることです。
ほとんどの文字セットで問題なく動作しますが、Windows-1252 文字セットを読み取ってデコードしようとすると、iconv 関数は何も返しません。
iconv 関数を mb_convert_string に変更しようとすると、すべての文字が正しく変換されません。
これは私のコードです:
if( $part->parameters[$i]->attribute == 'charset' )
$charset = $part->parameters[$i]->value;
if (strtolower($charset) != 'iso-8859-1')
$this->emailMessageTxt = iconv($charset, 'iso-8859-1', $this->emailMessageTxt);
そこにエラーはありますか?