プロが教えるわが家の防犯対策術!

環境:Windows2008R2 + PHP5.4

次のようなHTMLより日本語ファイル(い.pdf)を読み込みPHPの$_FILES変数で確認をすると
文字化けしていたので、バイナリエディタで確認すると「c3a3c281c284.pdf」となっていました。
これを「い.pdf」へ戻すにはどうすれば良いでしょうか?
HTMLファイルのエンコードは、「UTF-8」です。
よろしくお願いします。

htmlファイル

<form id="aupload" action="upload.php" method="POST" enctype="multipart/form-data">
<input type="file" name="aupname" multiple="multiple"/>
</form>

A 回答 (1件)

「PHP アップロードファイル文字化け」


http://wghost.org/it/2009/07/mb_convert_encoding …

こちらでは「auto」で書かれていますがこれはphp.iniに依存するので使用すべきではありません。Windowsであればエンコーディングは「cp932」または「SJIS-win」と指定しますが、アップロード元がWindowsだとは限らないので

$filename = mb_convert_encoding($filename, 'UTF-8', 'ASCII,JIS,UTF-8,CP51932,SJIS-win');

としてください。

参考
http://doremi.s206.xrea.com/php/tips/mbconv.html
    • good
    • 0
この回答へのお礼

教えて頂いたページをダウンロードし実行してみましたが、結果は変わりませんでした。
文字は化けたままです。

ページのエンコードがいけないのかと思い、UTF-8→SJISにしてみましたが、
文字コードが「C282C2A2」.pdfとなっただけで、い.pdfとは
取得できませんでした。

php.iniの問題でしょうか?

phpのバージョンは、5.4.21です。

お礼日時:2013/11/05 09:18

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!