やっとまともにPHPを勉強しようと思って、xamppを入れ直して、10日で覚えるPHP5を開いて、簡単な1行掲示板をとりあえず動かそうと、サンプルコードを打ち込んでみました。流れはこんな感じ。

  1. フォームから書き込む
  2. date関数で書き込み時間を変数に放り込む
  3. フォームからの値を変数にタブ区切りで放り込む
  4. 変数をファイルにfputs

ウォームアップのため、とりあえずデータを入力できるようにしようと思って、サンプルコードを入れてみましたが、データファイルを開いたら、「年」のところだけ文字化けですorz

それで、調べること約8時間(途中で他の作業してたりもしてましたがw)。やっとそれらしい答えがでてきました。
教えて!goo DATE関数でYが文字化けします
http://oshiete1.goo.ne.jp/qa2962218.html

どうも、これがダメでした。

<?php
date( "Y年 m月 d日");
?>

そのまま引用すると、

恐らくSJISでプログラムを書いているからだと思います。
SJISの「年」は、0x94 0x4e の2バイトです。
2バイト目の 0x4e は 「N」という文字と一致します。
date関数においては、「Y」が西暦四桁数字に置き換えられるように、「N」は曜日を示す数字に置き換えられます。
それによって文字化けが発生しているのだと思います。
そういうわけで、SJIS以外でプログラミングしましょう。

ということで、「年」の部分だけが文字化けしてしまうのは、「年」のところにdate関数で置き換えられてしまう「N」が入っているからみたい。ちなみに、Nっていうのは、PHP5から出てきた、曜日のことを示すようです。

やっぱりShift-JISは嫌われている訳なんですね。他の文字コードだと、Dreamweaverと他のエディタでよく読み直しされてしまって、気づけば文字コードが訳のわからないことになった経験があるので、微妙なところ。ほらほら、i-modeだってShift-JISだし;
実際のところ、WindowsでPHP開発してる人って、EUCがデフォルトなんでしょうかね。それともUnicode?