sql >> データベース >  >> RDS >> Mysql

mysqlデータベースにギリシャ文字を正しく挿入できません

    あなたの問題はあなたのcharset-encodingに関連しています。 全体が重要です 文字が正しく表示されない問題を回避するために、コードには同じ文字セットがあります。

    適切に定義する必要のある設定はかなりあります。UTF-8には必要な文字がほとんど含まれているため(スカンジナビア語、ギリシャ語、アラビア語、ロシア語など)、UTF-8を強くお勧めします。

    特定の文字セットに設定する必要があるもののリストを次に示します。

    ヘッダー

    • HTMLヘッダーとPHPヘッダーの両方の文字セットをUTF-8に設定する

      • PHP:

        header('Content-Type: text/html; charset=utf-8');
        

        (PHPヘッダーは任意のの前に配置する必要があります 出力(エコー、空白、HTML)!)

      • HTML:

        <meta charset=utf-8" />
        

        (HTMLヘッダーは<head>内に配置されます / </head> タグ)

    接続

    • 接続自体で文字セットを指定する必要もあります 。 PDOの例では、次のように実行されます

      $handler = new PDO('mysql:host=localhost;dbname=database;charset=utf8', 'username', 'password', array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET CHARACTER SET UTF8"));
      

      charset=utf8に注意してください -属性。他のMySQL-APIには、将来何か他のものを使用する場合に備えて、これを行うさまざまな方法があります。

    データベース

    • データベース そのテーブルはUTF-8に設定する必要があります。文字セットはではないことに注意してください 照合と同じです。すでに照合をUTF-8に設定しているようですが、それは良いことですが、データベース全体とすべてのテーブルに対して同じことを行います。

      これを行うには、データベースとテーブルごとに以下のクエリを1回実行します(たとえば、phpMyAdminで)

      ALTER DATABASE databasename CHARACTER SET utf8 COLLATE utf8_unicode_ci; 
      ALTER TABLE tablename CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
      

      データベースにすでに保存されているデータは、壊れた文字セットが自動的に修正されるわけではないことに注意してください。したがって、データを挿入する前にこれを行うか、文字セットを設定した後にデータを再挿入することが重要です。

    php.ini仕様

    • php.iniで ファイルの場合、次のように、プラットフォームのデフォルトの文字セットを指定する必要があります

      default_charset = "utf-8";
      

    ファイルエンコーディング

    • .phpも重要です ファイル自体はUTF-8でエンコードされています。 Notepad ++を使用してコードを記述している場合、これはタスクバーの[フォーマット]ドロップダウンで実行できます。

    絵文字

    • MySQL(テーブル、データベース、接続オブジェクトの両方)では、utf8mb4を指定する必要があります。 通常のutf8とは対照的な文字セット 、絵文字を使用したい場合。

    Javaについてはよくわかりませんが、そこでも属性をUTF-8に設定できる場合は、それを実行してください。基本的に、特定の文字セットに設定できるものはすべて同じに設定する必要があります。

    上記のすべての指針に従うと、問題が解決する可能性があります。そうでない場合は、次のStackOverflowの投稿をご覧ください: UTF-8全体



    1. 列内の個別の値の数を取得するにはどうすればよいですか?

    2. PHP-レコードが正常に削除されたことを確認する方法

    3. Oracleの条件付きSUM

    4. WooCommerce:データベースで製品を見つける