照合 テキストの並べ替えにのみ影響し、保存されているデータの実際の文字セットには影響しません。
この構成をお勧めします:
-
DB全体の文字セットを設定します のみなので、テーブルごとに個別に設定する必要はありません。文字セットは、DBからテーブル、列に継承されます。
utf8
を使用する 文字セットとして。 -
DB接続の文字セットを設定します 。データベースに接続した後、次のクエリを実行します。
SET CHARACTER SET 'utf8' SET NAMES 'utf8'
-
ページの文字セットを設定します 、HTTPヘッダーおよび/またはHTMLメタタグを使用します。これらの1つで十分です。
utf-8
を使用するcharset
として 。
これで十分です。
スペイン語の文字列を適切に並べ替えるには、 collationを設定します。 データベース全体に対して。 utf8_spanish_ci
動作するはずです(ci
大文字と小文字を区別しないを意味します )。適切な照合がないと、アクセント付きのスペイン語の文字は常に最後に並べ替えられます。
注 :以前に文字セットの構成が間違っていたために、テーブルにすでにあるデータの文字セットが壊れている可能性があります。このケースを除外するには、最初にDBクライアントを使用してチェックする必要があります。壊れている場合は、正しい文字セット構成でデータを再挿入するだけです。
文字セット はどのように機能しますか データベースでの作業
-
オブジェクト 文字セットがある 属性。明示的に設定することも、継承することもできます(サーバー>データベース>テーブル>列)。したがって、データベース全体に設定するのが最適なオプションです
-
クライアント接続 文字セットもあります 属性であり、データを送信するエンコーディングをデータベースに通知します
クライアント接続とターゲットオブジェクトの文字セットが異なる場合、データベースに送信するデータは、接続の文字セットからオブジェクトの文字セットに自動的に変換されます。
たとえば、utf8
のデータがある場合 、ただしクライアント接続 latin1
に設定 、データベースはutf8
を変換しようとするため、データを破壊します latin1
のように 。