47

phpMyAdminを使用して新しいMySQLデータベースを作成する場合、照合を選択するオプションがあります(たとえば、デフォルト、armscii8、ascii、...、UTF-8)。私が知っているのはUTF-8です。これは、常にHTMLソースコードで表示されるためです。しかし、デフォルトの照合は何ですか?これらの選択肢の違いは何ですか?どちらを使用すればよいですか?

4

3 に答える 3

30

照合は、文字列の照合と並べ替えを実行する方法をデータベースに指示します。文字セットと一致する必要があります。

UTF-8を使用する場合、照合はになりますutf8_general_ci。これはUnicode順にソートされ(大文字と小文字は区別されません)、ほとんどの言語で機能します。また、ASCIIとLatin1の順序も保持されます。

デフォルトの照合は通常latin1です。

于 2009-08-05T04:23:25.733 に答える
20

照合は実際にはデフォルトではなく、最初の選択肢としてデフォルトの照合を提供します。

私たちが話しているのは、照合、つまりデータベースがテキストタイプで使用する文字セットです。デフォルトのオプションは通常、地域の設定に基づいているため、グローバル化を計画していない限り、通常はピーチキーンです。

照合によって、大文字と小文字の感度とアクセントの感度も決まります(つまり、'Big' =='big'ですか?CIの場合はそうです)。すべてのオプションについては、 MySQLリストを確認してください。

于 2009-08-05T03:57:28.687 に答える
9

簡単な答え:MySqlとMariaDBで照合を処理するときは、常にutf8mb4(具体的には)を使用してください。utf8mb4_unicode_ci

長い答え:

MySQLのutf8エンコーディングは、適切なUTF-8エンコーディングとは異なるため、厄介な名前が付けられています。Unicodeを完全にサポートしていないため、データの損失やセキュリティの脆弱性が発生する可能性があります。

幸い、MySQL 5.5.3(2010年初頭にリリース)は、適切なUTF-8にマップし、Unicodeを完全にサポートするutf8mb4と呼ばれる新しいエンコーディングを導入しました。

ここで全文を読んでください:https ://mathiasbynens.be/notes/mysql-utf8mb4

どちらutf8mbを選択するかについては、utf8mb4_unicode_ciパフォーマンスの欠点を最小限に抑えて、並べ替えが常に適切に処理されるようにしてください。詳細はこちらをご覧ください:utf8_general_ciとutf8_unicode_ciの違いは何ですか

于 2019-08-01T10:25:25.183 に答える