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

PHP SimpleHTMLDOMパーサーでの文字エンコードの問題

    @decezeと@Shaktiはあなたの助けに感謝します。

    decezeによって投稿された記事リンクの+1(WebアプリでのUnicodeの前面から背面への処理 )そして、エンコーディングについて も読む価値があります。

    あなたのコメントを読み、答え、そしてもちろんこれらの2つの記事を読んだ後、私はついに私の問題を解決しました。

    この問題を解決するためにこれまでに行った手順をリストしました:

    1. header('Content-Type: text/html; charset=utf-8');を追加しました 私のinit.phpファイルの上部にあります
    2. これらの値を格納しているデータベーステーブルフィールドのCHARACTERSETをUTF-8に変更しました。
    3. MySQL接続文字セットをUTF-8に設定しますmysql_set_charset('utf8', $connection_link_id);
    4. htmlentities()関数を使用して文字を変換しました$meta_title = htmlentities(trim($meta_title_raw), ENT_QUOTES, 'UTF-8');

    これで問題は解決したようですが、この問題を完全に解決するには、次のことを行う必要があります。

    1. ソースからエンコードされた文字セットを取得します$source_charset
    2. 文字列がまだ同じエンコーディングでない場合は、文字列のエンコーディングをUTF-8に変更します。このために利用できる唯一のPHP関数はiconv()です。 。例:iconv($source_charset, "UTF-8", $meta_title_raw);

    $source_charsetを取得するため 私はおそらくいくつかのトリックやマルチチェックを使用する必要があります。ヘッダーやメタタグなどをチェックするように、エンコーディングを検出

    上記の手順に改善や欠陥があるかどうかをお知らせください。



    1. データベースからドロップダウンCodeIgniterにデータを表示する

    2. MySQLで関係を作成する方法

    3. UbuntuにMySQLをインストールする方法

    4. Oracleテーブルの動的パーティション