携帯からのフォーム送信・・・
この前「ソフトバンクではフォームの送信が必ず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はダメ」と喚起する人もほとんどいない。大丈夫になったりしてるのかな?。識者のご意見を求めます。