シナリオ: 製品の詳細を編集するために使用される html ドキュメントは ISO-8859-1 としてエンコードされ、POST データを PHP ファイル (これも ISO-8859-1 でエンコードされています) に送信します。その PHP ファイルには、入力をクリーニングする mysql_real_escape_string 関数があります。データベース/mysql サーバーの文字セットは UTF-8 です。問題は、POST 文字列にスカンジナビア文字 (ä、ö、å) が含まれている場合、mysql_real_escape_string が空の文字列を返すことです。
utf8_encode/decode でオーバーライドしようとしましたが、うまくいきません。
ここで、html&php ファイルを UTF-8 を使用するように変更すると、保存は (予想どおり) 正常に機能しますが、以前に保存されたすべての製品データが破損しているように見え、何千もの製品行が存在します。
それを修正する最も簡単な解決策は何ですか?データベースの文字セットを変更しますか? エンコーディング関数を実行して、データベース内のエントリを変換しますか?