[PHP] UTF-8の半角スペースのバイトコード
PHP に限らない話ですが、若干ハマりかけたので備忘録として。
サーバサイドのプログラムで WYSIWYG や JQuery 等を利用したカレンダーといった JavaScript を使用したインタフェースからの入力値を受けとるケースは多いと思いますが、そういった際(JavaScript が input要素 の value属性 を操作する)に使用しているプラグインやライブラリの文字コードがUTF-8の場合は半角スペースの扱いに少し注意が必要です。
普通にキーボードから半角スペースを入力した場合のバイトコードは 0x20 ですが、JavaScriptなどから挿入された半角スペースのバイトコードは 0xc20xa0 となる場合があります。
僕の場合はこれが原因で MySQL の Timestamp型 のフィールドを更新する時に、日付は更新されるが時間が更新されない(常に00:00:00になってしまう)という罠にハマりそうになりました。
一番単純な方法ですが、PHP であれば次の様に対応できます。
$str = str_replace("\xc2\xa0", ' ', $str);
トラックバックURL
http://mashimonator.weblike.jp/mt/mt-tb.cgi/237
コメント投稿フォーム