照合が utf8_unicode_ci である MySQL テーブル (テーブルと列の両方) に格納されているフランス語のテキスト (「é」などのアクセント付き文字を含む) があり、HTML5 ページに出力したいと考えています。
HTML ページの文字セットは UTF-8 (< meta charset="utf-8" />) で、PHP ファイル自体は「BOM なしの UTF-8」としてエンコードされます (Windows では Notepad++ を使用します)。PHP5 を使用してデータベースを要求し、HTML を生成します。
ただし、出力ページでは、特殊文字 ("é" など) が文字化けして表示され、"�" に置き換えられます。
データベースを (phpMyAdmin 経由で) 参照すると、同じアクセント付きの文字が問題なく表示されます。
ここで何が欠けていますか?
(注: ページのエンコーディングを (Firefox の「Web 開発者」メニューから) ISO-8859-1 に変更すると、問題が解決します... PHP ファイルに直接現れる特殊文字を除いて、破損します。しかし、とにかく、私は「なぜ UTF-8 が機能するのかを理解せずにエンコーディングを変更するよりも、UTF-8 として機能しない理由を理解したいと思います。^^;)