ホームページ > データベース > mysql チュートリアル > UTF-8 MySQL データベースで依然として「不正な文字列値」エラーが発生するのはなぜですか?

UTF-8 MySQL データベースで依然として「不正な文字列値」エラーが発生するのはなぜですか?

Patricia Arquette
リリース: 2024-12-17 11:40:24
オリジナル
592 人が閲覧しました

Why Am I Still Getting

MySQL の「不正な文字列値」エラーの修正

背景:

テキストの構成にもかかわらずUTF-8 文字セットと照合順序を使用する列では、特定の電子メール アドレスは引き続き「文字列値が正しくありません」エラーを引き起こします。この記事では、これらのエラーの根本的な原因を調査し、解決策を示します。

原因:

エラー メッセージは、影響を受ける電子メール アドレスに現在の文字でサポートされていない文字が含まれていることを示唆しています。構成を設定します。 UTF-8 は一般に許容的ですが、一部の文字シーケンスはその制限を超える場合があります。

解決策:

  1. データ エンコーディングの確認:ソース データ (電子メール アドレス) が正しくエンコードされていることを確認します。 UTF-8.
  2. データベース接続の確認: MySQL 接続を確立した後、次の SQL ステートメントを実行します:

    SET NAMES 'utf8mb4';
    SET CHARACTER SET utf8mb4;
    ログイン後にコピー

    これにより、文字セットとUTF-8 への現在の接続の照合順序 (1 文字あたり 4 バイト) (utf8mb4).

  3. テーブルの文字セットを確認します: 影響を受ける電子メール アドレスを含むテーブルについて、次のクエリを実行して文字セットを確認します:

    SELECT
      `tables`.`TABLE_NAME`,
      `collations`.`character_set_name`
    FROM
      `information_schema`.`TABLES` AS `tables`,
      `information_schema`.`COLLATION_CHARACTER_SET_APPLICABILITY` AS `collations`
    WHERE
      `tables`.`table_schema` = DATABASE()
      AND `collations`.`collation_name` = `tables`.`table_collation`
      ;
    ログイン後にコピー

    文字セットが次のように設定されていることを確認してください。 utf8mb4.

  4. データベース設定を確認します: 次の MySQL ステートメントを実行して、グローバル文字セットと照合順序の設定を確認します:

    mysql> show variables like '%colla%';
    mysql> show variables like '%charac%';
    ログイン後にコピー

    次のことを確認します。文字セットと照合順序の両方が次のように設定されていますutf8mb4.

修正の影響:

utf8mb4 を使用すると、サポートされる文字範囲が広がり、次の電子メール アドレスに対する「文字列値が正しくありません」エラーが解消されます。拡張文字。また、データベースと国際データおよび将来の Unicode 標準との互換性も向上する可能性があります。

以上がUTF-8 MySQL データベースで依然として「不正な文字列値」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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