キャラクターセットの問題は、理解するのが非常に難しいことがよくあります。基本的に、次のすべてが正しいことを確認する必要があります。
- DB接続 UTF-8を使用しています
- DBテーブル UTF-8を使用しています
- 個々の列 DBテーブルでUTF-8を使用しています
- データは実際に保存されます データベース内のUTF-8エンコーディングで適切に(不正なソースからインポートした場合、またはテーブルや列の照合を変更した場合は、多くの場合そうではありません)
- ウェブページがリクエスト中 UTF-8
- Apacheはサービスを提供しています UTF-8
このリストを最初から最後まで処理するための優れたチュートリアルは次のとおりです。
問題は、おそらく文字セットを変更したり、間違った文字セットですでにエンコードされたデータをインポートしたりして、ダブルエンコード(またはトリプルエンコード)された文字を使用していることのようです。上記のチュートリアルには、それを修正するためのセクション全体があります。