phpの関数「str_replace」
検索文字列に一致したすべての文字列を置換する関数です。
スペースを置換しようと思ってstr_replaceを使って置換してたのですが、なんと文字化けするパターンがありました。
「ァ」などの全角小文字があると置換した際に文字化けしてしまいます。
原因と対処法をメモ。
原因
str_replaceはマルチバイト対応していない模様
「ァ」があるとコードにした際に、途中で違う文字と判定されるため
対処法
str_replaceではなく、mb_ereg_replaceを使用する
mb_ereg_replaceはマルチバイト対応関数
日本語が含まれる文字列を変換する際は、気をつけましょう!