ホームページ  >  記事  >  バックエンド開発  >  mysql による中国語の文字化けのエクスポートと phpmyadmin による中国語の文字化けのインポートに対する実践的な解決策_PHP チュートリアル

mysql による中国語の文字化けのエクスポートと phpmyadmin による中国語の文字化けのインポートに対する実践的な解決策_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:37:17671ブラウズ

私は phpmyadmin を使用したことがありません。このマシンでは navicat も使用していますが、いつも phpmyadmin が遅いと感じています。今回は別のホストがなかったので、他の人が提供した phpmyadmin を使用する必要がありました。

ステップ 1: ローカル データを SQL ファイルにエクスポートします。 Navicat にとっては些細なことだと思いました。データベースを直接右クリックして「dump sql」を実行すると (図 1 を参照)、10 秒以上でエクスポートが成功します。

(図 1: navicat でデータベース全体を SQL に変換する)

メモ帳で開いて唖然としました。中国語は全部意味不明です。どうしたの?少し検索して、どの接続プロパティを変更する必要があるかを見つけました。動作しません。単一のテーブルに SQL をダンプしてみてください。中国語は普通です。しかし、82 個のテーブルがあるので、それらを 1 つずつダンプするのに疲れることはありません。いいえ。愛するナビキャットを捨てるしかなさそうです。 mysqldump があることを思い出したので試してみます。 -C:Documents and SettingsAdministrator>mysqldump -uroot -p123 ttg>ttgbk2.sql を実行します。開いてみるとやはり文字化けしていました。まだ。良い。 。検索して以下に変更し、指定した文字セットを追加します

C:Documents and SettingsAdministrator>mysqldump -uroot -p123 --default-character-set=gbk ttg>ttgbk2.sql。開いて見てください。やあ、それだけだ。

ステップ 2: 仮想ホストによって提供される phpmyadmin を開き、ファイル ttgbk2.sql を選択して、「実行」をクリックします。あのスピード、うーん。 。 。しばらくするとエラーが報告されました。ロック テーブル tablename write の実行時にアクセス拒否エラーが発生しました。SQL を開いたところ、確かにロック テーブル オプションがあることがわかりました。許可がない場合は使用しないでください。ネットで検索すると、 --skip-lock-tables が追加されているとのことで、これがいいのかなと思いました

mysqldump のときに -skip-lock-tables オプションを追加すると、コマンド ラインは
C:Documents and SettingsAdministrator>mysqldump -uroot -p123 --default-character-set=gbk --skip-lock-tables ttg> になります。 sql.
結果は残念です。まだロックテーブルが残っています。
mysqldump --help
を見た後、バックアップ中の読み取りと書き込みを防ぐために --skip-lock-tables が使用されていることに気付きました。ただし、エクスポートにロック テーブルを含めたくない場合は (インポート時に権限がないためです (笑))、add-locks=false を使用する必要があります。これらは 2 つの概念です。正しいものは次のとおりです
C:Documents and SettingsAdministrator>mysqldump -uroot -p123 --default-character-set=gbk ttg --add-locks=false>ttgttg3.sql.

エクスポートしたバージョンをメモ帳で開くと、asni 形式になります。

再度 phpmyadmin に移動してインポートします。 3 つのテーブルをインポートすると、結果はエラーになりました。 mysql ステートメントがエラーを報告します。一見すると漢字が文字化けしています。 。 。 。 。崩壊に近い。

その理由をもう一度探してください。 「MySQL 接続校正」を gbk-chinese-ci に変更し、言語を簡体字中国語に変更します (図 2)。次に、インポート時の「ファイルエンコーディング」を「gbk」に変更します(デフォルトはutf-8ですが、メモ帳で開くと、対応するSQLファイルのエンコーディングはansiになります)(図3)。 。 。 。

mysql による中国語の文字化けのエクスポートと phpmyadmin による中国語の文字化けのインポートに対する実践的な解決策_PHP チュートリアル

(図 2: リンクの校正と言語を変更する)

(図3: ファイルの文字セットをgbkに変更します)

最後に、すべてのテーブルが正常にインポートされました。漢字を含むテーブルを開くと、フィールドが通常どおり表示されます。

2つの経験点:

1. データベースコーディングはデータベースコーディングに属します。接続の校正がデータベースのエンコーディングと一致していることを確認してください。

2. SQL ファイルエンコーディングはファイルエンコーディングに属します。インポート時に選択したファイルのエンコードが、データベースで使用されているエンコードと一致していることを確認することが最善です。

これらは 2 つのエンコードの問題です。

私は、あなたがこのコーディングの問題を抱えていることを知ったときから今に至るまで、あなたはまだこのようであることに感心しています。この質問は今でも多くの人を混乱させています。 sqlserver のように国際化されるのはいつですか?

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/321967.html技術記事私は phpmyadmin を使用したことがありません。このマシンでは navicat も使用していますが、いつも phpmyadmin が遅いと感じています。今回は別のホストがなかったので、他の人が提供した phpmyadmin を使用する必要がありました。 ステップ 1: ローカル...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。