私はMySQLが初めてで、知りたいのですが:
utf-8
navicatで行ったように、文字セットでデータベースを作成するにはどうすればよいですか?
create mydatabase;
...何らかの種類のデフォルト文字セットを使用しているようです。
私はMySQLが初めてで、知りたいのですが:
utf-8
navicatで行ったように、文字セットでデータベースを作成するにはどうすればよいですか?
create mydatabase;
...何らかの種類のデフォルト文字セットを使用しているようです。
回答:
注:以下は、より良い方法と見なされています(bikeman868の回答を参照)。
CREATE DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
元の回答:
これを試して:
CREATE DATABASE mydatabase CHARACTER SET utf8 COLLATE utf8_general_ci;
詳細については、MySQLリファレンスマニュアルのデータベースの文字セットと照合を参照してください。
COLLATE utf8mb4_unicode_520_ci
またはutf8mb4_0900_ai_ci
または、例えば、特定でもロケール: utf8mb4_vi_0900_ai_ci
。MariaDB 10.2.2+には、「nopad」照合がありますutf8mb4_unicode_520_nopad_ci
。 dev.mysql.com/doc/refman/8.0/en/charset-unicode-sets.html
utf8mb4_0900_ai_ci
。思われるよりも優れているutf8mb4_unicode_ci
以下を使用する必要があります。
CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
utf8_general_ci
ベストプラクティスとして推奨されなくなったことに注意してください。関連するQ&Aを参照してください。
スタックオーバーフローでのutf8_general_ciとutf8_unicode_ciの違いは何ですか。
utf8mb4_0900_ai_ci
。思われるよりも優れているutf8mb4_unicode_ci
utf8mb4
ことを、私たちは他の人たちと呼んでいますutf8
。それでは、MySQLに何utf8
を求めますか?これはutf-8の限定バージョンであり、文字のサブセットに対してのみ機能しますが、絵文字などには失敗します。後で彼らutf8mb4
は正しい実装を追加しましたが、MySQLは古い間違いとの後方互換性を維持する必要があるため、古いエンコーディングを修正する代わりに新しいエンコーディングを追加しました。新しいデータベースはすべてを使用する必要がありますutf8mb4
。