私はLAMP Webサーバーを扱っています。ユーザーが mysql のテキスト フィールドに保存されているテキストを送信するために使用するフォームがあります。多くの場合、このテキストは Microsoft Office 製品からコピー アンド ペーストされているため、スマート クォートやエムダッシュが大量に含まれています。これらの文字は、データベースから取得して Web ページに表示すると正しく表示されますが、phpmailer クラスを使用して電子メールでテキストを送信するときに問題が発生します。次のようなものが得られます: – (emdash のはずです)。
重要なことの 1 つ: mysql でコンソールをプルアップし、emdash またはスマート クォートが含まれるフィールドを選択すると、コンソールに正しく表示されません。ページ (PDO を使用) でフィールドを選択して表示すると、ブラウザーで (この場合は emdash として) 正しく表示されます。
phpmailer で文字セットを選択する方法があるかどうか (おそらくどこかで簡単な設定でしょうか?)、またはこの問題を回避するより良い方法があるかどうかはわかりません。ただし、「スマートクォートとエムダッシュを検索して通常の同等のものに置き換える」ことは、私が探している答えではないことを明確にする必要があると思います(うまくいけば、それが唯一の解決策ではありません)。
私はこの情報を見つけました:
私のphpウェブページ:utf-8
mysqlクライアントエンコーディング:latin1
mysqlサーバーエンコーディング:latin1
phpmailer文字セット:iso-8859-1