4

WordPress ブログと phpBB フォーラムを新しいホスティング サーバーに移行しています。phpMyAdmin を使用して、以前のサイトのデータベースから SQL スクリプトをインポートしています。

Kate で .sql スクリプトを開くと、エンコーディングとして UTF8 を使用していると表示されます。新しいサーバーにSQLをインポートすると、phpMyAdminにエンコーディングを選択するオプションがあり、デフォルトでutf8が選択されています。

それでも、データベースのインポートが完了すると、投稿テキストを phpMyAdmin で直接読み、「é」、「ñ」などの文字が「解釈」されておらず、挿入された奇妙な文字に置き換えられているのを確認します。

WordPress のインストールも機能していないことがわかります。どうやらこのエンコーディングに問題があるようですが、WordPress ではなく、MySQL データベースまたは phpMyAdmin に問題があると思います。

MySQL のバージョンは実質的に同じ MySQL 5 ですが、リビジョンが異なります。また、フォーラムデータベースの移行時は問題なかったので、これはさらに奇妙です...

これを修正する方法がわかりません...どんなアイデアでも大歓迎です。

4

3 に答える 3

10

追加してみましたか

SET NAMES 'utf8';

あなたのSQLダンプに?

utf8またはエンコーディング全般の問題は、成功するためには、次のことを確認する必要があるということです。

  • ファイルは署名なしでutf8でエンコードされています
  • mysqlサーバーのデフォルトのエンコーディングはutf8に設定されています
  • 接続はutf8です(これが、SET NAMES'utf8'をSQLファイルに入れる理由です)。
  • すべてのテーブルと列には適切なエンコーディングと文字セットがあります
  • すべてのWebファイルもutf8でエンコードされている必要があります。また、正しいヘッダーを追加するだけでは機能しません。ファイルを開き、エンコーディングがutf8であるかどうかを確認する必要があります。そうでない場合は、すべてを切り取り、エンコーディングをutf8に変更して、すべてを貼り付けます。エンコーディングを変更してファイルを保存するだけでは機能しません。
于 2008-12-06T18:08:20.180 に答える
2

ご回答ありがとうございます。私は解決策を見つけましたが、これまで気づかなかったのは本当にばかげていると感じています。すべてが正常に動作するはずでした:

-ファイルは utf8 でエンコードされました -テーブルは utf8 で宣言されました:

SET character_set_client = utf8;
-MySQL サーバーは utf8 などで構成されました。

そもそも気が付かなかったのは、cPanel のバックアップ ウィザードからデータベース バックアップを使用していたことです。これに気づいてすぐに、古いサーバーでphpMyAdminを使用してデータベースをエクスポートし、新しいサーバーにインポートして、問題を修正しました。

phpMyAdmin は、cPanel よりも phpMyAdmin をよく理解しています :P どうやら cPanel は、cPanel 自体でインポートされるスクリプトをエクスポートします。これもおそらくうまくいくでしょうが、私は phpMyAdmin の方が信頼できます。

あなたの答えに感謝します。

于 2008-12-06T20:16:41.433 に答える
1

私はちょうど同じ問題に出くわしました.約1時間それに取り組み、私のサイトの多くを壊したので、他の誰かがそれに苦労していないか見て、解決策を投稿することにしました.解決策は非常に簡単です.インポート時にインポート文字セットを指定します。

ホストに SSH アクセスできる場合は、最初にすべてのテーブルを新しいデータベースにもう一度ドロップしてから、SSH セッションで次のコマンドを実行します (古いダンプ ファイルがolddatabase.dump.sqlであると仮定します)。

$ mysql -h host -u username -p password --default-character-set=utf8 database < olddatabase.dump.sql (ホスト、ユーザー名、パスワード、およびデータベースを適切な値に置き換えます)

これは、問題を解決するための最も簡単で直接的な方法です。

于 2009-12-25T08:11:14.967 に答える