ホームページ >データベース >mysql チュートリアル >ラテン語以外の電子メールを受信したときに MySQL で発生する「文字列値が正しくありません」エラーを修正する方法

ラテン語以外の電子メールを受信したときに MySQL で発生する「文字列値が正しくありません」エラーを修正する方法

Barbara Streisand
Barbara Streisandオリジナル
2024-12-17 20:32:10922ブラウズ

How to Fix

「文字列値が正しくありません」エラーの解決

ラテン語以外の電子メールを受信するときに「文字列値が正しくありません」エラーが発生する場合は、根本的な問題があることを示しています文字エンコーディング付き。これを解決する体系的なアプローチは次のとおりです。

原因の特定

エラーは、MEDIUMTEXT 列の「contents」が適切にエンコードされていないことを示唆しています。 UTF-8 を使用するように設定されていますが、一部のメールには UTF-8 エンコーディングに準拠していない文字が含まれています。

問題の解決

  • データ ソースを確認します: インポートされる電子メールが完全に UTF-8 であることを確認します。
  • データベース接続を設定します: 文字セットと照合順序を UTF-8 に設定します:

    SET NAMES 'utf8mb4';
    SET CHARACTER SET utf8mb4;
  • テーブルとデータベースを確認してください設定:

    • 「コンテンツ」テーブルの場合:

      ALTER TABLE table_name MODIFY contents MEDIUMTEXT COLLATE utf8mb4_general_ci;
    • データベース:

      ALTER DATABASE database_name DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

修正の影響

  • データ破損なし: バイナリ フラグを使用するのとは異なり、このソリューションは次の方法でデータの整合性を維持します。適切な UTF-8 表現に変換します。
  • SQL との完全な互換性: データは、Unicode データ用に設計された SQL クエリおよび演算子と互換性があります。
  • ストレージ容量の増加: UTF-8mb4 では 1 文字あたり最大 4 バイトが必要となり、必要なストレージ容量が増加する可能性があります。ただし、これは通常、ほとんどのアプリケーションでは無視できます。

注:

従来の UTF-8 文字セットの代わりに UTF-8mb4 を使用することをお勧めします。より広範囲の Unicode 文字のサポートが強化されるためです。

以上がラテン語以外の電子メールを受信したときに MySQL で発生する「文字列値が正しくありません」エラーを修正する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。