• ベストアンサー

str_replace()で文字化け

str_replaceについておしえてください。(IE6,php4.3.7,sjis環境) str_replace('','',$str) で$strの中に'能'という文字があると'能\'になってしまいました。 そこで str_replace('能\','能',$str); とすると今度はエラーになりました。 どうすれば化けなくなるでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

参考URLと同じ問題です。 (\については書かれていないが、\も対象になる、能がシフトJISで945C(5Cが¥)になるため)

参考URL:
http://okwave.jp/kotaeru.php3?qid=1296274
SoHeart
質問者

お礼

ありがとうございました。

その他の回答 (1)

  • php504
  • ベストアンサー率42% (926/2160)
回答No.2

str_replace('能\','能',$str); がエラーになるのは str_replace('A\\','A\',$str); がエラーになる理由がわかれば理解できると思います。 普通\を除去する場合はstripslashes()関数を使います。 $str = stripslashes($str); ですね。 '能'が'能\'になる理由は参考URLを見てください。

参考URL:
http://jp.php.net/manual/ja/security.magicquotes.php
SoHeart
質問者

お礼

マジッククオート機能はないほうがいい。なんて思ってしまいました。 回答ありがとうございました。

関連するQ&A