掲示板に携帯から書き込むとURLエンコード
PHPを使って掲示板を作成しています。
UTF-8でPHPファイルを作成し、UTF-8のテキストファイルにログをためていく感じで作っています。
PCでは、だいたい正常に動くようになったのですが、携帯電話(au/W61S)からの投稿を試してみたところ、投稿結果がURLエンコードの状態になってしまいました。。。
%82%c6%82%a4%82%b1%82%a4%82%c4%82%b7%82%c6
さらにシフトJISでエンコードされているようでしたので、自分のつたない知識を総動員して、以下のような処理をさせることでなんとか形にはなったのですが、かなり処理としては乱暴な気がしています。
携帯電話からの投稿というのは、URLエンコードとして受け取るしかないのでしょうか(auでしか試していないため、他のキャリアだと別の問題が発生するのでしょうか?)
また、下記の方法よりももっとスマートに携帯からの投稿を、表示できる文字列に変換する方法をご存じの方がいらっしゃいましたら、ご教授いただければ幸いです。
よろしくお願いいたします。
<?php
//フォーム内に入力された文字列を取得
$test = $_GET['formtxt'];
//先頭の文字を抽出
$firsttxt = substr($test,0,1);
//先頭の文字列が%であれば、URLデコードを行い、シフトJISからUTF-8に変換する
if($firsttxt == "%"){
$test = urldecode($test);
$test = mb_convert_encoding($test,'UTF-8','SJIS');
}
?>