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');
よくわからないけど、これでこれまでのページも、文字化けしたページも文字化けが治ったので、今後これで使うことにした。外部からの取得に関しては。