tro-suke blog

Homepage template is free, and the WordPress theme is free, too.
ホームページ制作/HPテンプレート無料、WordPressテーマも無料!!
blog top > CSS、PHP 備忘録 > phpのフォームで添付ファイルの文字が消える

phpのフォームで添付ファイルの文字が消える

サーバーの移転などで、それまで使えていたphpで作成したフォームが使えなくなってしまうことがある。phpのバージョンによる場合もあるが、単にそれだけでもない場合もあるようだ。phpの設定を細かく自分で設定できる場合は、それで解決できる場合もあるが、そうでないサーバーもあるわけで、そんな時はエラーを一つ一つ解決していくしかない。

今回発生した問題は、ファイルを添付できるお問い合わせフォームで送信した時、添付ファイルのファイル名が漢字から始まるファイル名だと、文字が消えてしまうという現象だ。添付ファイルと書いたけど、実際はファイルをサーバーにアップして、ダウンロードできるようにするというものだ。ファイルはアップロードしたときに、管理しやすく番号にリネームするのだが、ファイル名が消えてしまうと、リネームできずにエラーとなってしまう。

ファイル名が欧文や英数字から始まるものは問題ないのだが、漢字から始まるとファイル名が消えてしまい、拡張子しか残らない。

phpとかに詳しい方なら簡単かもしれないが、私はそうでもないので、先人の知恵を借りることとなる。ググってみると、文字コードを指定するときsetlocale()を使用すればいいようだ。

setlocale(LC_ALL, 'ja_JP.UTF-8');

テストしてみるとどうやらこれで解決できそうだ。

今回参考にさせていただいたHPは「fgetcsv関数を文字化け対応 setlocaleの文字コード指定」です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

▲ page top