文字コードと改行コード

表示されるhtml文書の文字コードとサーバ側の文字コードは合わせた方が良いです。
サーバで設定されている文字コードについてはphpinfo()を呼ぶことによって確認することが出来ます。

OSの内部コードはLinux系では古くはEUC-JP、現在の主流はUTF-8、windowsではShift-JISになりますが、 Shift-JISでは「\」のコードと2バイト文字の2バイト目のコードの関係で文字が化けることがあります。 また、Shift-JISは多くの問題を抱えている(2バイト文字の2バイト目の文字が1バイト文字の英数記号の 文字コードと重なっている)ため、全ての不具合が対応されることはないようです。
管理人が知っている範囲ではShift-JIS環境でdate関数の出力フォーマット中に「年」という文字を入れると 文字化けを起こします。これは内部処理にEUC-JPを使用しているためと思われます。

また、OSによって改行を表すコードが微妙に違います。 通常プログラム言語では「\n(LF)」を改行としますが、これはLinux系の改行コードです。 windows系は「\r\n(CRLF)」、Mac系は「\r(CR)」で改行を表します。