【PHP】au携帯とmultipart/form-dataでの文字化け

いくつも、参考になるサイトはあるのだけど、もう一つやってみたので、備忘録に書きます。

  • PHP 5.3.7 (cli) (built: Aug 21 2011 22:54:50)
  • CentOS release 5.8 (Final)

au向けが目的ではなかったのだけど、docomo向けにコメント(textarea)と、画像を同時にアップできるように

<form … enctype=’multipart/form-data’>

とすると、コメントが au で化けてしまった。au の画像アップは、癖があるので、断念している人が多いし別ページにするという手もあるけど、ちょっと無理をしてみました。

textarea からアップされてきた情報は「%82%a6%82。。。」でした。

どこかで見たような気がするなあと、悩んだ挙句、urlencode されている事に気づいたので、

$str = urldecode($_REQUEST['aaaa']);

$str = mb_convert_encoding($str, “UTF-8″, “SJIS”);

※実際は絵文字対応もしているので、「HTML_Emoji」の encoding を使っています。

docomoや、PCブラウザでは必要ないので

if ( $str != urldecode($_REQUEST['aaaa']) ) {

$str = urldecode($_REQUEST['aaaa']);

。。。

と、とりあえず回避する事にしました。

コメントする

コメントを投稿するにはログインしてください。