1. ホーム
  2. マイスル

[解決済み】MySQLデータベースに絵文字を格納する方法

2022-04-18 13:17:48

質問

私はプロジェクトで絵文字を使用しています。その文字はmysqlのデータベースに保存(???)されています。でデータベースデフォルトの照合順序を使用しました。 utf8mb4_general_ci . それは次のように表示されます。

1366 Incorrect string value: '\xF0╱x98F↩x83xF0╱x9F...' for column 1行目の'comment'

解決方法は?

ステップ1:データベースのデフォルト文字セットを変更します。

ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;

dbがまだ作成されていない場合、正しいエンコーディングで作成します。

CREATE DATABASE database_name DEFAULT CHARSET = utf8mb4 DEFAULT COLLATE = utf8mb4_unicode_ci;

ステップ2、テーブル作成時に文字コードを設定する。

CREATE TABLE IF NOT EXISTS table_name (
...
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_unicode_ci;

またはテーブルを変更する

ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE table_name MODIFY field_name TEXT CHARSET utf8mb4;