2011-06-28 6 views
2

私は、テーブル 'ABC' を持っている(のcharset = UTF8)、これらは私のキャラクターは、変数の値を設定している
[MySQLバージョン4.1.23 - サーバ]およびクライアントのバージョン - 今すぐ3.23.57mysql 4が--character_set_resultsと--default-character-setコマンドの引数を尊重しないのはなぜですか?

 

mysql> show variables like 'character%';
+--------------------------+------------------------------------+ | Variable_name | Value | +--------------------------+------------------------------------+ | character_set_client | latin1 | | character_set_connection | latin1 | | character_set_database | latin1 | | character_set_results | latin1 | | character_set_server | latin1 | | character_set_system | utf8 | | character_sets_dir | /home/y/share/mysql/charsets/ | +--------------------------+------------------------------------+ 7 rows in set (0.00 sec)

Iの場合MySQLのクライアントに

 
mysql>select * into outfile '/tmp/a' from ABC; 
Query OK, 26 rows affected (0.00 sec) 

をクエリを実行し、/ tmp/

 
[satyavrk-~]$: file /tmp/a 
/tmp/a:UTF-8 Unicode text 

Qのファイルタイプをチェック1)私のcharacter_set_resultsはlatin1なので、/ tmp/aのファイルタイプは、latin1またはISO-8859英語のテキストの代わりにUTF-8とはどのようになっていますか?また

私は

 
[satyavrk-~]$: mysqldump -uroot --databases my --tables ABC --default-character-set=utf8 > 63794 

を実行し、

 
[satyavrk-~]$: file 63794 
63794: ISO-8859 English text, with very long lines 

Q2をすれば)私はUTF-8として--default-文字セット指定されたので、結果セットがUTF-8にする必要があり。そうではありません!どうして?どちらの場合も、ファイルの種類で

は期待

異なっているいずれかは、私は

答えて

0

問題はmysqlクライアントにあると思います。バージョン4のmysqlクライアントで同じことをしようとすると。 2番目の問題は解決されました!

dev.mysql.com/doc/refman/5.0/en/select.htmlにあるドキュメントでは、「SELECT ... INTO OUTFILEはLOAD DATA INFILEの補数です。列の値はバイナリ文字を使用してダンプされます実際には文字セット変換はありません。テーブルに複数の文字セットの列が含まれている場合、出力データファイルも同様になり、ファイルを正しく再読み込みできなくなる可能性があります。 character_set_resultsは読み込まれません。

0

SET NAMESをしないのですポイントはあなたが必要なものだけおそらく便利ですし、説明することができます。

関連する問題