1. ホーム
  2. mysql

[解決済み] MySQLでUTF-8を正しく処理する方法

2022-09-24 19:54:07

質問

の回答のひとつに に対する回答のひとつです。 は、私のデータベースがUTF-8文字を正しく処理できることを確認する必要があることを示唆しました。MySQL でこれを行うにはどうすればよいですか?

どのように解決するのですか?

更新しました。

簡単な答え - ほとんど常に utf8mb4 文字セットと utf8mb4_unicode_ci の照合順序を指定します。

データベースを変更する。

ALTER DATABASE dbname CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

ご覧ください。

オリジナルの回答です。

MySQL 4.1 以降は、デフォルトの文字セットが UTF-8 になっています。これを確認するには my.cnf ファイル内で確認できます。 クライアントとサーバ ( default-character-setcharacter-set-server ).

UTF-8に変換したい既存のデータがある場合、データベースをダンプし、念のためUTF-8でインポートし直してください。

  • 使用 SET NAMES utf8 データベースへのクエリ/挿入の前に
  • 使用 DEFAULT CHARSET=utf8 新しいテーブルを作成するとき
  • この時点で、MySQL クライアントとサーバは UTF-8 になっているはずです ( my.cnf を参照)。使用する言語(PHP など)も UTF-8 である必要があることを忘れないでください。PHP のバージョンによっては、独自の MySQL クライアントライブラリを使用し、それが UTF-8 を認識していない場合があります。

既存のデータを移行する場合は、最初にバックアップすることを忘れないでください! 計画通りに行かなかった場合、多くの奇妙なデータの切り刻みが発生する可能性があります!

いくつかのリソース。