phpのフォームで添付ファイルの文字が消える
Category : CSS、PHP 備忘録
サーバーの移転などで、それまで使えていたphpで作成したフォームが使えなくなってしまうことがある。phpのバージョンによる場合もあるが、単にそれだけでもない場合もあるようだ。phpの設定を細かく自分で設定できる場合は、それで解決できる場合もあるが、そうでないサーバーもあるわけで、そんな時はエラーを一つ一つ解決していくしかない。
今回発生した問題は、ファイルを添付できるお問い合わせフォームで送信した時、添付ファイルのファイル名が漢字から始まるファイル名だと、文字が消えてしまうという現象だ。添付ファイルと書いたけど、実際はファイルをサーバーにアップして、ダウンロードできるようにするというものだ。ファイルはアップロードしたときに、管理しやすく番号にリネームするのだが、ファイル名が消えてしまうと、リネームできずにエラーとなってしまう。
ファイル名が欧文や英数字から始まるものは問題ないのだが、漢字から始まるとファイル名が消えてしまい、拡張子しか残らない。
phpとかに詳しい方なら簡単かもしれないが、私はそうでもないので、先人の知恵を借りることとなる。ググってみると、文字コードを指定するときsetlocale()を使用すればいいようだ。
setlocale(LC_ALL, 'ja_JP.UTF-8');
テストしてみるとどうやらこれで解決できそうだ。
今回参考にさせていただいたHPは「fgetcsv関数を文字化け対応 setlocaleの文字コード指定」です。
Date : 2014年12月17日 | Comments : 0
コメントを残す