1

先週、データベースを別のプラットフォームに移行しました。phpmyadmin パネルから mysqldump をエクスポートし、bigdump スクリプトを使用して新しいプラットフォームにインポートしました。私がインポートしたSQLダンプファイルは、もともとこの方法で設定されたデータベースに保存されていました:

MySQL charset: UTF-8 Unicode (utf8)
MySQL connection collation: utf8_unicode_ci

utf8 文字セットを選択してデータベースをエクスポートしましたが、mysqldump ファイル内を見ると、すべてのテーブルが表示されます: DEFAULT CHARSET=latin1

今、アクセント付きの文字 (à、è、ò、ì など) に問題があり、 ò 、 Ã... などのように表示されます。新しいデータベースを管理するには、MySQL Workbench を使用します。プロンプトが表示されたら、「char%」などの変数を表示します。すべての値が utf8 に設定されていることがわかります。どうすれば問題を解決できますか? 私は Mysql と db の専門家ではありません!

4

2 に答える 2

0

あなたが言及したutf8設定にもかかわらず、あなたのテーブルはlatin1を使用しているようです。したがって、ここにはいくつかのオプションがあります。

  1. 作成したダンプをそのまま取得し、latin1接続文字セット(utf8ではない)を使用してサーバーに送信します。ただし、これにより、ソースサーバー上にあるのと同じようにlatin1文字セットを使用してテーブルが作成されます。
  2. ダンプを実行できるツールがある場合は、ダンプをutf-8に変換します。ただし、スクリプト内のテーブルの文字セット設定も変更する必要があります。
  3. テーブルをutf8に変換し、ダンプを再度実行します。
  4. 1 + 3を組み合わせますが、代わりにターゲットテーブルを変換します。ソーステーブルを変更できない場合に便利です。

MySQL Workbenchを実際に試し、ダンプを新しいサーバーに復元しましたか?latin1でエンコードされたバックアップでこのケースを処理できるはずです。「サーバー管理」セクション->「データのインポート/復元」を参照してください。

于 2013-01-25T08:14:35.460 に答える
0

テーブルの現在の文字セットを元の文字セットに変更してみることができます。

alter table TABLE_NAME convert to character set utf8 collate utf8_unicode_ci;
于 2013-01-24T09:36:30.663 に答える