xpathで外部のhtmlを取得して、mysqlに入れていた。外部のhtmlのcharsetはutf-8だったのだけど、同じutf-8に指定されていたページの一部が文字化けしてしまうため、色々調べて解決したのでメモ。

これまで使っていたmb_convert_encoding

mb_convert_encoding($str,"UTF-8","auto");

と、こんな感じで使っていたのだけど、一部ページだけがどうしても文字化けしていたのだけど、以下に変更したら正常に文字化けせず入力できた

mb_convert_encoding($str,'HTML-ENTITIES', 'UTF-8');

よくわからないけど、これでこれまでのページも、文字化けしたページも文字化けが治ったので、今後これで使うことにした。外部からの取得に関しては。

コメント