タグ:Locale
ZipArchiveのextractToで日本語ファイルが解凍できない【PHP】
zip圧縮自体はうまくいってるのだけれど、ZipArchiveのextractToで解凍すると日本語部分が消えてしまう問題が発生しました。
たとえばファイル名が
サンプル-1.jpg
という場合、解凍すると
-1.jpg
となってしまいます。
調べたところ、ZipArchiveはPHPで設定されているlocaleに依存するとのこと。
ZipArchiveで日本語ファイル名を扱えない場合があって困った話 - Qiita
ということであれば、同じプログラム内で事前にlocaleの設定を変えればいいんじゃね?と思い、ZipArchiveをインスタンス化する前に、下記を追記しました。
if (setlocale(LC_ALL, 'ja_JP.UTF-8') === false) { error_log('Locale not found: ja_JP.UTF-8'); exit(1); }
日本語ファイルでもうまく解凍できるようになりました!
nandani | 2014年12月19日 | コメント(0) | トラックバック(0) | PHP関連