PHP - preg_splitの文字化け
preg_splitを使って文字列の分割をやっていたのですが、全角文字が文字化けしていたのでずーっと格闘していました。
mb_splitにしてもsplit()、explode()で試してみても結果は同じ。
最初は文字化けしているものをリストアップして、一旦違う文字へ置換して配列に格納したあとに再度元に戻すなんて面倒くさいことをやっていたのですが、やっと原因が分かりました。
文字コードがShift-jisになっていたのを完全に忘れていました。
なので即効でUTF-8に修正したら正常に表示されるようになりました。
preg_splitに限らず、Shift-jis(sjis)ではstr_replaceなどでも正常に置き換えしてくれないケースがありましたが、UTF-8だと巧くいってますね。