mysqlインポートエクスポートデータ中国語文字化けし解決方法小結

3127 ワード

linuxシステムで
linuxのデフォルトはutf 8符号化であり、windowsはgbk符号化であるため、上記の乱符号化の問題が発生する.
mysqlインポートエクスポートデータの乱符号化の問題を解決する
まず、エクスポートしたデータの符号化フォーマットを決定し、mysqldumpを使用する場合は--default-character-set=utf 8を追加する必要があります.
たとえば、次のコードがあります.

   mysqldump -uroot -p --default-character-set=utf8 dbname tablename > bak.sql 
 

では、データをインポートするときも--default-character-set=utf 8を使用します.

   mysql -uroot -p --default-character-set=utf8 dbname < bak.sql 
 

これにより統一符号化はmysqlデータ移行における乱符号化問題を解決する
Windowsをエクスポートデータソースとして使用し、freebsd環境のmysqlライブラリをインポートします.
解決方法:
データのエクスポート
一、まずwindowsプラットフォームの下でmysqlをエクスポートデータベースソースとして使用します.文字コードのシステム変数を表示します.
 
  
mysql> show variables like ‘%char%';
+――――――――�C+―――――――――-+
| Variable_name | Value |
+――――――――�C+―――――――――-+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | gbk |
| character_set_system | utf8 |
| character_sets_dir | D:mysqlsharecharsets |

+――――――――�C+―――――――――-+

character_の表示set_database、ここはlatin 1で、latin 1はマルチバイト文字セットを入れられません
二、Windowsの下でシステム変数をutf 8に設定する

   mysql>set character_set_database=utf8; ##         utf8 
 

三、データのエクスポート

   mysql> select * from table into outfile ‘c:table.txt' where +   
 

このとき、私が欲しいデータの一部をエクスポートし、txtファイルでtable.txtで.
データのインポート
freebsdプラットフォームの次の、同様に文字符号化のシステム変数を設定する
 
  
mysql> show variables like ‘%char%';

+――――――――�C+―――――――――-+
| Variable_name | Value |
+――――――――�C+―――――――――-+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | gbk |
| character_set_system | utf8 |

+――――――――�C+―――――――――-+

mysql>set character_set_database=utf8; ## utf8

二、転載データ

   mysql>load data local infile ‘/home/table.txt' into table `table`; 
 

これで、条件データが完全にインポートされてエクスポートされ、文字化けしが処理される.
要するに、2台のmysqlサーバがエクスポートをインポートする場合は、必ず2台のサーバのcharacter_を確保してください.set_Databaseパラメータは同じで、いくつかの文字化けしを防ぐことができます.もちろん、gbkなどの他の文字セットを使用して調整することもできます.状況に応じて操作した
解決方法3
文字化けし
データをインポートした後、コマンドラインで中国語の文字化けしを確認します
次のコマンドを使用してシステム文字セットを表示します.

   show variables like 'char%'; 
 

GBKまたはUTF 8でない場合はmysqlサービスを停止し、インストールディレクトリにmyを変更します.iniファイル、
ファイル内の次の変数を次のように変更し、この変数がなければ追加します.
 
  
[mysql]
default-character-set=gbk

[mysqld]
character-set-server=utf8

サービスを再起動し、データを再インポートし、文字化されていない場合は、
最後に経験を得た場合は,導入と導出符号化を統一すれば問題ない.