先日うちのトラックバック受信スクリプトで文字化けを起こしていたので施した対策。何をやったか忘れそうなのでとりあずメモ。
$postall=implode(",",$_POST);
$encoding=mb_detect_encoding($postall,"auto");
if ($encoding!="EUC-JP") {
foreach($_POST as $key=>$val) {
$_POST[$key]=mb_convert_encoding($val,"EUC-JP",$encoding);
}
}
普通はPHPの自動コード変換でちゃんと動くのですが、入力の内容や長さによって誤動作することがあるようなので。なんか動作が変なので調べてみたらEUCに変換されるべきところなのにUTF8のままデータベースに登録しようとしてエラーになってました。昔ながらの方法ですが、くっつけて判定というのは割と有効な手段のようです。