2011-11-16 25 views
3

私は、Windowsサーバー上でホストされているMySQLデータベースを持っています。 mysqlコンソールを使用してさまざまなWindowsマシンから特定のレコードを照会すると、Päivi(不正確)となります。私がさまざまな* nixマシンからmysqlコンソールを使って同じレコードを照会すると、Päivi(正しい)が得られます。私が使用しているクエリは単純なSELECT firstname FROM users WHERE id = 12345;です。MySQLのエンコーディングの問題 - LinuxとWindowsとで異なる結果

私のデータベースの照合順序はutf8です。照合順序はutf8です。照会を実行する前にset names 'utf8';を試してみました。

なぜWindowsマシンが別の結果を返すのですか?ウィンドウに特定の文字が見つからないことがありますか?これは通常の/期待される動作ですか?私はエンコードや言語のエキスパートではないので、フィードバックが役に立ちます。

+0

:次のコマンドを使用し、

status; 

それを設定するにはどのようにサーバーと対話していますか? MySQLのコマンドライン、MySQLのワークベンチ、PHPMyAdmin? –

+0

@Trarothすべてのクエリは、mysql consoleを使用して実行されました。私はPHPがおそらくそれを突き詰める可能性があるPHPMyAdminを通してそれを見るのとは対照的に、最も多くの変数を削除したと考えました。 –

答えて

2

あなたの現在のクライアントのキャラクタを表示するには、次のコマンドを入力し、MySQLのコンソールクライアントから、サーバーに接続した後:

set names latin1; 
+0

サーバ、Db、クライアント、およびコネクションはすべてutf8の文字セットに設定されています。それは私が欲しいものではありませんか? –

+0

* nixサーバーで何が表示されているかを確認し、同じ設定にしてください。 –

+0

クライアントはLinuxインストール時にlatinに設定されていました。ありがとう! –

0

WindowsコンソールがANSIコードページを使用してマルチバイトのままであるかどうかはわかりません。もしそうなら、それは問題になるでしょう。結果は正しいかもしれませんが、コンソールはそれらを間違って表示します。

関連する問題