マルチバイト非対応関数で文字列操作をすると、思わぬ文字化けを起こす場合があります。 //全角ハイフンを半角ハイフンにしたい echo str_replace("‐", "-", "京都府京都市 南区久世 上久世町ふにふにもふもふ"); /* 結果 */ 京都府京都市 南区久世。-綉彑つ・佞砲佞砲發佞發ユ ハイフンなんてどこにもないのですが、上記ソースをEUC-JPで保存して実行すると再現できます。 全角ハイフンが A1BE、”(全角スペース)上”が A1A1|BEE5。マッチしてしまったようです。 対策その1 – マルチバイト対応関数を使う //置換元の文字 $address1 = "京都府京都市 南区久世 上久世町ふにふにもふもふ"; $address2 = "京都府京都市 南区久世 上久世町7-7‐7"; //全角ハイフンを半角ハイフンに置換 echo mb_ereg_replace(