PHP - preg_splitの文字化け

preg_splitを使って文字列の分割をやっていたのですが、全角文字が文字化けしていたのでずーっと格闘していました。

mb_splitにしてもsplit()、explode()で試してみても結果は同じ。
最初は文字化けしているものをリストアップして、一旦違う文字へ置換して配列に格納したあとに再度元に戻すなんて面倒くさいことをやっていたのですが、やっと原因が分かりました。

文字コードがShift-jisになっていたのを完全に忘れていました。
なので即効でUTF-8に修正したら正常に表示されるようになりました。
preg_splitに限らず、Shift-jis(sjis)ではstr_replaceなどでも正常に置き換えしてくれないケースがありましたが、UTF-8だと巧くいってますね。

ggてみたら、Shift-jisでもphp.ini、.htaccess等の設定で回避できるみたいです。

SEO的にもUTF-8のほうがGoogle先生も理解しやすいのかなぁ・・・なんて思ったりしましたがどうなんでしょうw