私のテーブルの照合順序はutf8_general_ci
で、文字セットはutf8
です。次のようなクエリを実行しても、値が表示されません。
SELECT * FROM mytable WHERE myfield = "Björn Borg"
OR myfield = "FrüFrü & Tigerlily";
どうすれば table から値を取得できますか?
問題は接続文字セットにある可能性があります。実行してみてください
SET NAMES 'utf8'
そして、あなたのクエリ。
列レベルなど、MySQL が文字セットを定義する場所は他にもあります。
データベース設定を確認するには: SHOW VARIABLES LIKE 'char%'; 'collation%' のような変数を表示します。
テーブル設定を確認するには: SHOW CREATE TABLE tablename;
個々の列を確認するには: SHOW FULL COLUMNS IN tablename;
間違ったエンコーディングでデータベースを作成した場合は、これらすべてで不正な文字セットが出現するたびに変更する必要があります。