絵文字を MySQL に保存する方法 データベースに入力する 絵文字表現 クエスチョン マーク文字の問題

絵文字表現が utf8 エンコーディングで保存されている場合MySQL データベースまたは MariaDB の場合、表示できません。

データベースに入力された絵文字表現が疑問符文字になるのはなぜですか?

絵文字式は 4 バイト文字であり、utf8 文字セットは 1 ~ 3 バイトの文字しかサポートしないため、絵文字式をデータベースに書き込むことはできません。

データベースに入力された絵文字表現がクエスチョン マーク文字になる問題を解決するにはどうすればよいですか?

2 つの解決策があります。

  1. XNUMX バイト文字をカスタム文字に置き換えて、手動でテキストを入力します。
  2. 変更する MySQL データベース文字セット、データベース文字セットを utf8 から utf8mb4 に変更し、1 ~ 4 バイト文字をサポートします。

実際、最初の方法は手間がかかりすぎるため、お勧めできません。

MySQL データベースの文字セットを変更する 2 番目の解決策を使用することをお勧めします。

MySQL 5.5.3 バージョンから、データベースは 4 バイトの utf8mb4 文字セットをサポートでき、文字は最大 4 バイトを持つことができるため、より多くの文字セットをサポートでき、絵文字表現も保存できます。

  • MySQL 5.5.3 以降では、基本的にシームレスに utf8mb4 文字セットにアップグレードできます。
  • 同時に、utf8mb4 は utf8 文字セットと互換性があります。
  • utf8 文字のエンコード、位置、および格納は、utf8mb4 にあります。
  • utf8 文字セットと同じで、既存のデータに損傷はありません。

のためphpMyAdminの新しく作成されたデータベースに新しく作成されたテーブルの場合、デフォルトの文字エンコードは次のとおりです。Latin1

  • このエンコーディングでは、中国語と絵文字の表現を挿入できません。
  • データベース文字セットとテーブルの文字セット エンコーディングを utf8mb4 に変更する必要があります。
  • その後、MySQL を再起動すると、中国語と絵文字の表現を挿入できます。

MySQL絵文字の問題解決

ステップ1:MySQL 構成ファイル my.cnf を変更します。

  • (Windows サーバーは my.ini、Linuxサーバーは my.cnf です)
  • my.cnf ファイル、通常は/etc/mysql/my.cnfポジション。
  • CWP コントロール パネルにある my.cnf ファイル/etc/my.cnfポジション。

見つけたら、次のXNUMXつの部分に次の内容を追加してください▼

[client]

default-character-set = utf8mb4

[mysql]

default-character-set = utf8mb4

[mysqld]

character-set-client-handshake = FALSE

character-set-server = utf8mb4

collation-server = utf8mb4_unicode_ci

init_connect='SET NAMES utf8mb4'

ステップ2:MySQL データベースを再起動します

service mysqld restart

手順 3: 文字セットを再度確認し、SQL コマンド ラインに ▼ を入力します。

SHOW VARIABLES WHERE Variable_name LIKE 'character_set_database';

次のことを確認してください ▼

絵文字を MySQL に保存する方法 データベースに入力する 絵文字表現 クエスチョン マーク文字の問題

以下のSQLコマンドを入力▼

SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%';

以下のようになっていることを確認▼

 +--------------------------+--------------------+

| Variable_name | Value |

+--------------------------+--------------------+

| character_set_client | utf8mb4 |

| character_set_connection | utf8mb4 |

| character_set_database | utf8mb4 |

| character_set_filesystem | binary |

| character_set_results | utf8mb4 |

| character_set_server | utf8mb4 |

| character_set_system | utf8 |

| collation_connection | utf8mb4_unicode_ci |

| collation_database | utf8mb4_unicode_ci |

| collation_server | utf8mb4_unicode_ci |

+--------------------------+--------------------+

phpMyAdmin で新しいデータベースを作成したら、次のことを行う必要があります。データベースコードを見る ▼

SHOW CREATE DATABASE db_name;
  • 如:SHOW CREATE DATABASE test;

データベースのエンコーディングが異なる場合utf8mb4、データベースの文字セットを次のように変更する必要がありますutf8mb4

データベースの文字セットを utf8mb4 に変更するには?

ステップ 1: phpMyAdmin で現在のデータベース名をクリックし、[SQL] をクリックします。

ステップ 2: 次のコマンドを入力して、データベースの文字セットを次のように変更します。utf8mb4

ALTER DATABASE db_name DEFAULT CHARACTER SET utf8mb4
  • 如:ALTER DATABASE test DEFAULT CHARACTER SET utf8mb4;

ステップ3:MySQL データベースを再起動します

service mysqld restart
  • それでおしまい。

SQL コマンドの例を次に示します。

デフォルトの文字セットとテーブルのすべての文字列を新しい文字セットに変更する ▼

ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8_general_ci;
  • 如:ALTER TABLE logtest CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8_general_ci;

テーブルのデフォルト文字セットのみを変更する場合▼

ALTER TABLE tbl_name  DEFAULT CHARACTER SET utf8mb4 COLLATE utf8_general_ci;
  • 如:ALTER TABLE logtest DEFAULT CHARACTER SET utf8mb4 COLLATE utf8_general_ci;

フィールドの文字セットを変更する ▼

ALTER TABLE tbl_name CHANGE c_name c_name CHARACTER SET character_name 
  • 如:ALTER TABLE logtest CHANGE title title VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci;

テーブルコードを見る▼

SHOW CREATE TABLE tbl_name;

フィールドコードを見る ▼

SHOW FULL COLUMNS FROM tbl_name;

現在のデータベース コードを表示 ▼

SHOW VARIABLES LIKE 'character_set_%';
  • mysql-connector-java ドライバー パッケージは、5.1.13 以降で utf8mb4 のみをサポートします。

Hope Chen Weiliang ブログ ( https://www.chenweiliang.com/ ) 共有「MySQL に絵文字を保存するにはどうすればいいですか? データベースの絵文字表現のクエスチョン マークの問題を入力してください」、これは役に立ちます。

この記事のリンクを共有することを歓迎します。https://www.chenweiliang.com/cwl-26592.html

さらに多くの隠されたトリックのロックを解除するには、Telegram チャンネルにぜひご参加ください。

気に入ったらシェアして「いいね!」してください!あなたのシェアと「いいね!」が私たちの継続的なモチベーションです。

 

发表评论

バグのあるボックスの内容は公開されません。 必須アイテム * 标注

上へスクロール