更新:
簡単な答え-ほとんどの場合、utf8mb4
を使用する必要があります 文字セットとutf8mb4_unicode_ci
照合。
データベースを変更するには:
ALTER DATABASE dbname CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
参照:
-
この回答に対するアーロンのコメント
方法MySQLにUTF-8を適切に処理させる -
変換ガイド: https://dev.mysql。 com / doc / refman / 5.5 / en / charset-unicode-conversion.html
元の回答:
MySQL 4.1以降には、UTF-8のデフォルトの文字セットがあります。これはmy.cnf
で確認できます ファイル、両方を設定することを忘れないでください クライアントとサーバー(default-character-set
およびcharacter-set-server
。
UTF-8に変換する既存のデータがある場合は、データベースをダンプして、UTF-8としてインポートし直します。次の点を確認してください。
-
SET NAMES utf8
を使用します データベースにクエリ/挿入する前に -
DEFAULT CHARSET=utf8
を使用します 新しいテーブルを作成するとき - この時点で、MySQLクライアントとサーバーはUTF-8になっているはずです(
my.cnf
を参照)。 )。使用する言語(PHPなど)もUTF-8である必要があることに注意してください。 PHPの一部のバージョンは、独自のMySQLクライアントライブラリを使用しますが、UTF-8に対応していない場合があります。
既存のデータを移行する場合は、最初にバックアップすることを忘れないでください。物事が計画どおりに進まない場合、多くの奇妙なデータのチョッピングが発生する可能性があります!
いくつかのリソース:
- 完全なUTF-8移行 (cdbaby.com)
- UTF-8のphp関数の準備に関する記事 (この情報の一部は古くなっていることに注意してください)