質問: htmlsimpledomでスクレイピングによって要素を取得し、 PDOで文字列をmysqlにinsertすると下記のように文字化けします。 ``` ティファール 電気ケトル 「アプレシア プラス」 コンパクトモデル カフェオレ 0.8L BF805170 ``` どのように改善すべきでしょうか。 詳しい方、いらっしゃいましたら、ご教示ください。よろしくお願い致します。 文字化け対策としては、以下のように設定していますが、ダメなようです。 ``` query("SET NAMES utf8;"); } catch (PDOException $e) { echo $e->getMessage(); exit; } ``` 挿入している要素はvar_dumpで確認すると(string)になっているので、文字列で間違い無いです。
回答: テは文字化けではなくHTMLで使われる「数値文字参照」という文字の指定方法です。 試してないですが、html_entity_decodeで数値文字参照を元に戻せるようです。 ところで、PHP+MySQLにおいてデータベースの文字エンコーディングを指定する場合、SET NAMESを使用するのは好ましくありません。 どのように指定したらよいかは が参考になります