わかりました。Thunderbird に送信された電子メールを取得し、メッセージの一部を html に変換して MySQL に保存するスクリプトがあります。すべてのファイル、すべての書き込み部分は UTF-8 に設定されています。最後に、CRM (PHP5.3 で期待される出力 Chrome および Firefox で記述) の作業の最後に、他の情報と共にメッセージを取得し、GMail に似たものを従業員の「タスク リスト」として表示します。
私が抱えている問題は、まだ推測していない場合、一部の顧客の電子メールが明らかに異なるエンコーディングを使用していることです。したがって、電子メールの一部 (すべてではなく、大部分ではありません) では、すべての文字が正しく表示されません。
最初はutf8_encode
、電子メール メッセージを正しく表示するために を使用しました。これは、データベースから送信されるほとんどの電子メール メッセージに役立ちますが、文字が正しくないものもいくつかあります。
DB では、これらの「悪いアポストロフィ」は として表示されますが、通過’
後は. 必要に応じて推測して変更するために、さまざまなエンコーディングを試しましたが、これは他の電子メールの大部分を傷つける傾向があります.utf8_encode
�??
パイプの一方の端または他方の端で、これらのいくつかのメールを他のすべてに一致させる方法、または少なくとも最後に可能なpreg_replace
フィルターを作成する方法など、何か提案はありますか?
アップデート
によると、悪い文字を含む電子メールでさえ最後のphpに渡されるutf-8
ようmb_detect_encoding
です。これは、追加のエンコードの前です。iconv
問題のあるものを検出しますが、これは実際にそれらを解決する方法を私に与えずFALSE
、それが提供するはずの単純なリターンの代わりにphpエラーボックスを画面に表示するだけなので、これも解決策ではないようです.