20070903 PHPのdate()関数で文字化け PHPの内部文字エンコーディングがSJISの場合に echo date('Y年m月d日'); を実行すると 2007・09月03日 のように文字化けしてしまう。 これはShift-JISコードにおいて"年"という文字は2バイト目がasciiの"N"と同じで、これがdate()関数のformat指定子であるのが原因である。 EUC-JPやUTF-8では2バイト目以降にascciコードは出てこないので(参考:文字コードについて)、以下のようなコードでこの問題を解決できる。 function myDate(string $format, $time) { $encoding = mb_internal_encoding(); mb_internal_encoding("UTF-8"); $formatUtf8 = mb_convert_enc