| WordPressの検索機能をカスタマイズブログトップ | PHP関連 | 趣味・日常版のブログをこっちのサーバーへ引っ越しました
ZipArchiveのextractToで日本語ファイルが解凍できない【PHP】
この記事は1年以上前の記事のため、内容が古い可能性があります。
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); }
日本語ファイルでもうまく解凍できるようになりました!
トラックバック
トラックバックURL
コメントする
※メールアドレスが公開されることはありません。