携帯からのフォーム送信・・・
この前「ソフトバンクではフォームの送信が必ずUTFで送られる」みたいな記事を書いた。ものすごく気になっていたので、別途チェック専用のプログラムを書いて再度試してみた。
結果・・・。
嘘を書いていたことが判明しました。失礼しました。
プログラムの内容はたいしたことないが、設定すべき項目は全部書いておいた。
○プログラム中には
mb_language(‘Japanese’);
mb_internal_encoding(‘UTF-8′);
mb_http_input(‘pass’);
mb_http_output(‘SJIS-win’);
ob_start(‘mb_output_handler’);
ini_set(‘default_charset’,’SJIS’);
○.htaccessに
php_flag mbstring.encoding_translation 0
これで、フォーム(SJIS)から文字を送信したらSJISの文字が送られてきた・・・。やっぱそうだよね・・・。
ちなみにmb_internal_encoding(‘UTF-8′)と書くところを’SJIS’として、シフトJISでPHPファイルを書けば・・・というのはNG。たいていの場合PHPはzend multibyteが有効な状態になっていない。本来PHPはシフトJISで記述してはいけない言語だから。
たぶん・・・今でもそのはず。
でもいまだにシフトJISで書く人が後を絶たない。PHPのMLでも「シフトJISはダメ」と喚起する人もほとんどいない。大丈夫になったりしてるのかな?。識者のご意見を求めます。
2008/02/13 at 8:53 PM
3G端末に向けてのコンテンツであれば、UTF-8でも問題ないかと思います。
SoftBank端末(3G)の場合、フォームから絵文字を入力して送信すると、一部の機種(SH系)は絵文字が削除され、データを送信します。
上記については以下を参考にして頂ければと思います。
http://d.hatena.ne.jp/ryster/20071113/1194919937
SoftBank向けのコンテンツ制作の際の注意点としては以下が参考になればどうぞ。
http://d.hatena.ne.jp/ryster/20071009/1191900864
2008/03/15 at 5:31 PM
rysterさんが書いておられますが、3GCの場合には入出力ともにUTF-8, それ以外はSJISと考えておくと良いと思います。