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

ラテン語-1/UTF-8エンコーディングphp

    HTML出力は単一のエンコーディングである必要があります。それを回避する方法はありません。これは、異なるエンコーディングのコンテンツを最初にHTMLエンコーディングに変換する必要があることを意味します。それはiconvで行うことができますが またはmb_convert_encoding 、解決しなければならない問題が2つあります。

    1. コンテンツの現在のエンコーディングを知る(または推測する)必要があります
    2. これはどこでも手動で行う必要があります

    たとえば、理論的な解決策は、HTMLエンコーディングとしてUTF-8を選択し、出力するすべての文字列に対してこれを実行することです。

    $string = '...'; // from the database
    
    // If it's not already UTF-8, convert to it
    if (mb_detect_encoding($string, 'utf-8', true) === false) {
        $string = mb_convert_encoding($string, 'utf-8', 'iso-8859-1');
    }
    
    echo $string;
    

    上記のコードは、UTF-8以外のコンテンツがlatin-1でエンコードされていることを前提としています。これは、質問に応じて妥当です。



    1. mysqlの読み取り専用テーブル

    2. mysqlとphpの共通属性で2つのテーブルを結合する方法は?

    3. preg_replace()が終了区切り文字を見つけられませんか?

    4. ORA-1843:レコードの更新中に有効な月ではありません