キャラクター セットは私を曲がりくねらせます!
私のデータベースは utf8_general_ci で、その中のテーブルは utf8_unicode_ci です。私のすべてのPHPページには
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
頭の中で。
PHP ページにユーロ記号 (€) を入力してデータベースに入力すると、phpMyAdmin に € として表示されます PHP ページを使用してデータベースからコピーすると、再び € として表示されます</p>
ここまではいいのですが、PHP で HTML メールを書いてみると、何をしても「HTML メールの文字セットを指定してみましたが、うまくいきません。おそらく、メール クライアントがヘッダーではなくメール サーバーから文字セットを取得するためです。アクセント付きの文字などにも問題がありますが、それらはテキストに書き込まれているので、é に é を使用するなどして克服できます。面倒ですが、不可能ではありません。
きっともっと良い方法があります!
私の解決策 (SORT OF)
貢献してくれたすべての人に感謝します。文字セットを utf-8 (メール ヘッダー、html ヘッド、およびその両方) に指定するあらゆる方法を試しましたが、メッセージは依然として iso で届きます。したがって、他の場所から得た情報は正しかったようです。文字セットはサーバーによって定義されます。
固定テキストに é が必要になるたびに é のようなものを入力することで解決しなければなりませんでした。これは面倒ですが、少なくとも機能します。
ユーロ記号については、htmlentities 関数で変数をラップしました。それは機能しますが、同様のファイルで同様の問題が発生した場合は、データベースから取得した他の変数で行うことを忘れないでください。関数を html 本体全体にラップする方が簡単だったでしょうが、それはうまくいきません。