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

ギリシャ文字のエンコーディングはHTMLで機能しますが、PHPでは機能しません

    php文字列がエンコードに失敗した場所でmysqlデータが正しく出力されるのは本当に奇妙に聞こえますが、私が問題を解決しようとする方法は、このミスコーディングが生成された場所を特定しようとするステップに問題を分解することです!

    まず、default_charsetを設定してみてください utf-8へ php.iniファイル内。これは次のように実行されます:

    default_charset = "utf-8";
    

    プロバイダーの制限のためにそれができない場合でも、 ini_set 機能!

    また、Webサーバーがutf-8でエンコードされたファイルも出力するように設定されていることを確認する必要があります。 Apacheでは、これはhttpd.confまたはhtaccessファイルの両方で実行できます:

    AddDefaultCharset UTF-8
    

    この時点ですべてが失敗した場合でも、phpヘッダーと相対的なhtml文字セットを使用してみてください:

    <?php header("content-type: text/html;charset=utf-8") ?>
    <!doctype>
    <html>
        <head>
            <meta charset="utf-8">
        </head>
        <body>
            <?php echo "α β γ δ ε ϝ ϛ ζ η θ ι κ λ μ ν ξ ο π ϟ ϙ ρ σ τ υ φ χ ψ ω ϡ" ?>
        </body>
    </html>
    

    ただし、ファイルが適切なエンコーディングを使用して保存されることも非常に重要です(utf-8がほとんどの場合より適切な選択であり、問​​題をかなり防ぐのに役立ちます)。 utf-8とは異なるエンコーディングでファイルを保存した場合は、それらを破棄して、古いコンテンツから新しいファイルを作成します。 notepad ++は一般的にうまく機能しますが、ファイルが作成されると、エディターが実際にエンコーディングを適切に切り替えることができない場合があります。 converto toを使用するだけです encode inではありません 機能!

    それでも機能しない場合は、今では機能していると思いますが、 mb_detect_encoding mb_convert_encoding htmlentities および htmlspecialchars 問題を解決するために!




    1. Oracle jdbcドライバークラスの違いは?

    2. T-SQLを使用してSQLServerエージェントジョブを作成する

    3. MySQLでスキーマの名前を変更するにはどうすればよいですか

    4. 本番環境でPlayFramework2データベースの進化を処理する方法