MySQL 4.1 サーバー上に古いデータベースがあり、データベースにはユーザーが入力したコンテンツが含まれています。このデータベースを新しい MySQL 5 サーバーにコピーしました。コンテンツが印刷されているページを表示すると、黒いひし形の文字に疑問符が表示されます。真ん中に目印。これは、新しいサーバーでのみ表示されます。
このヘッダーをページに追加すると、ひし形は表示されなくなります。
header('Content-Type: text/html; charset=iso-8859-1');
そのヘッダーを取り出すと、サーバーは以下のようなデフォルトのヘッダーを送信し、ひし形が再表示されます
コンテンツ タイプ: テキスト/html; 文字セット=UTF8
このヘッダーをすべてのページに配置する必要がないように、データベースでこれを解決するにはどうすればよいですか (たとえば、テーブルでの何らかの変換)。
詳細: mysqldump を使用して古いサーバーからデータベースをエクスポートし、CentOS mysql コマンド ラインを使用してインポートしました。phpMyAdmin を使用してエクスポートも試みましたが、結果は同じです。
編集:
mysqldump ファイルを見ると、すべての CREATE TABLE ステートメントに charset = Latin1 が含まれていることがわかります。そのため、私が探しているのは、データベースを代わりに UTF8 でエクスポートする方法だと思います。このオプションを mysqldump に追加しようとしましたが、何の効果もありませんでした。ダンプにはまだ Latin1 が表示されています。
--default-character-set=utf8