ホームページ > データベース > mysql チュートリアル > MySQL に絵文字を挿入すると「文字列値が正しくありません」というエラーが発生するのはなぜですか?

MySQL に絵文字を挿入すると「文字列値が正しくありません」というエラーが発生するのはなぜですか?

Mary-Kate Olsen
リリース: 2024-11-27 09:59:10
オリジナル
483 人が閲覧しました

Why Do I Get

MySQL に絵文字を挿入できません: 不正な文字列値 ['xF0x9Fx91xBDxF0x9F...']

次の内容を含む文字列値を挿入しようとすると絵文字を MySQL データベースに追加すると、次のエラーが発生する場合があります。 java.sql.SQLException: 文字列値が正しくありません: 'xF0x9Fx91xBDxF0x9F...'。この問題は、データベースのエンコード制限に起因します。

絵文字のエンコードについて

地球外エイリアンや失恋などの絵文字は、通常、Unicode コード ポイントとして表されます。これらのコード ポイントは、MySQL の utf8 エンコーディングでサポートされている基本多言語プレーン (BMP) の範囲外にある可能性があります。結果として、これらの文字は utf8 列に格納できません。

解決策: 'utf8mb4' エンコーディングにアップグレードします

この問題を解決するには、に切り替える必要があります。 utf8mb4 エンコーディング。補助文字をサポートします。このエンコーディングでは文字を保存するのに 4 バイトが必要ですが、utf8 では最大 3 バイトしか保存できません。

「utf8mb4」エンコーディングを実装する手順:

  1. 確認してくださいMySQL バージョンが 5.5 以降であることを確認してください。
  2. 接続エンコーディングを次のように設定します。クエリを使用した utf8mb4: SET NAMES 'utf8mb4'.
  3. データベースの文字セットと照合順序を utf8mb4 に調整します: ALTER DATABASE [database_name] CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci.
  4. 問題のテーブル列: ALTER TABLE [テーブル名] CHANGE [列名] [新しい列の定義] CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci.

次の手順に従うことで、絵文字をサポートし、不正な文字列値の例外を回避するようにデータベース環境を更新できます。 🎜>

以上がMySQL に絵文字を挿入すると「文字列値が正しくありません」というエラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート